怎么让无模式对话框显示在主窗口后面

清泛编译
73. 怎么让无模式对话框显示在主窗口后面
要解决这个问题的关键在于CDialog的Create并不能建立一个无属主的窗口.必须用另外方式建窗口.  
  
 比如你的对话框类叫CDlgNoOwner,在CMainFrame中加一个CDlgNoOwner类的成员变量,  
 弹出这个对话框的消息处理函数为  
  
 void  CMainFrame::OnNoowner()   
 {  
CDlgNoOwner  *m_dlgTest=new  CDlgNoOwner(this); 
 HWND  hwndDlg=::CreateDialog(AfxGetInstanceHandle(),MAKEINTRESOURCE(CDlgNoOwner::IDD),NULL/*owner*/,NULL/*dlgproc*/);  
 //注意此处DLGPROC为NULL,并不要紧,因为接下要subclass啦  
 m_dlgTest->SubclassWindow  (hwndDlg);//挂接到成员变量!  
 m_dlgTest->ShowWindow  (SW_SHOW);  
 //这时可以看到一个"自由"的对话框弹出,和你的主窗口是平起平坐的.  
 }  
  
 当然不要忘了在对话框关闭时DestroyWindow()..那都是在对话框类中的标准处理了.
本文导航

MFC 总结 技巧

分享到:
评论加载中,请稍后...
App Inventor 2 中文网,少儿编程首选平台!
回到顶部