huangyhg 发表于 2003-11-10 17:30:00

如何生成有属性页的非模态对话框?

domodal生成的模态对话框上有四个按钮,我不想要,所以想用非模态的对话框

CMysheet mys(_T("111"));//CMysheet是CPropertySheet的子类
mys.DoModal();
能见到模态对话框

但是       
CMysheet mys(_T("111"));

mys.Create();
mys.ShowWindow(SW_SHOW);
为何只能看到含属性页的对话框的影子?


看vc里建无属性页的非模态对话框,得用new,否则连影子都看不到
可是CPropertySheet跟CDialog的格式好像不一样——不让用new

10house 发表于 2003-11-10 22:01:00

有一个办法可以做到:不要使用CPropertySheet,你还是创建Dialog资源,然后创建几个child式样的对话框,这些对话框用CPropertyPage作为基类,在Dialog中Create这些CPropertyPage,反正用Dialog作为这些CPropertyPage的Parent,所以你想怎么控制都可以了。我都是这么做的。

huangyhg 发表于 2003-11-10 22:22:00

AddPage还需要重新加载?

10house 发表于 2003-11-10 22:32:00

都不用CPropertySheet了,和AddPage无任何关系!你下载http://www.10house.net/xqg.asp里面的程序安装看看,连安装程序都是用上面讲的方法做的

huangyhg 发表于 2003-11-11 08:18:00

不是吧?你的网站???厉害啊!
若是,将来我找不到工作,就去投奔你啊!
我还会干点线切割操作的
没办法
如今学测量的女生很不好找工作的(性别歧视)
呵呵!kiding

huangyhg 发表于 2003-11-11 08:58:00

http://www.10house.net/xqg.asp里面的程序安装看看,连安装程序都是用上面讲的方法做的
晕,在论坛上转了半天,也没看见什么下载的地方!!!

不过,支持线切割什么cy...软件
记不清了,sorry

goldenshin 发表于 2003-11-11 14:10:00

(1) Create后就会显示
(2)看不到东西可能是没有社visible=true 和disable=false (对所有page都要设)
(3)如果你的程序在AutoCAD中运行,要额外做几件事:
(A)处理AutoCAD发过来的消息WM_ACAD_KEEPFOCUS
(B)将AUtoCAD的主窗口指给propertysheet 做父窗口.

huangyhg 发表于 2003-11-11 15:06:00

CYoume *mys=new CYoume(_T("aa"));

mys->Create();
mys->ShowWindow(SW_SHOW);

这样new就ok了

Gxiaofeng 发表于 2003-11-15 11:31:00

注;无模式对话不是同步的,创建函数调用后立即返回,
 void CMainFrame::OnMyDialog ( )
  {
   //建立一个非模式对话框。
   CSampleDilog * pDialog =new CMyDialog;
   ASSERT_VALID (pDialog) Destroy();
   BOOL bResult = pDialog —>Creste (IDD_IDALOG);
   ASSERT (bResult );
  }
页: [1]
查看完整版本: 如何生成有属性页的非模态对话框?