积极答复者
在父对话框中创建子对话框

问题
-
我在父对话框中使用CDialog::Create创建非模态的子对话框(子对话框的属性为WS_CHILD),但是子对话框显示出来后,子对话框下的父对话框的内容也会显示(譬如按钮之类),就是说子对话框不能完全覆盖父对话框.这些应该被覆盖的父对话框内容只是显示,并不能响应鼠标.将子对话框属性该为WS_POPUP,可解决上面问题,但是子对话框不能随父对话框一起移动.我的开发环境为VC6.请高手指点!
- 已移动 Vicky SongMicrosoft employee 2012年5月21日 2:02 C++ issue (发件人:Visual Studio 相关讨论(Visual Studio 2010以前版本))
答案
-
您创建子对话框(WS_CHILD属性)的时候,MoveWindow来调整子对话框的显示区域即可。
CNewDlg m_dlgChild; .... // 创建子对话框(Style: Child, Border : None) if(NULL == m_dlgChild.GetSafeHwnd()) { m_dlgChild.Create(IDD_DIALOG1, this); } CRect rc; GetClientRect(&rc); m_dlgChild.MoveWindow(&rc, FALSE); m_dlgChild.ShowWindow(SW_SHOW);
Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
- 已标记为答案 Helen Zhao 2012年5月25日 5:03
全部回复
-
我想你这是在MFC程序中创建对话框。
请看MSDN文档上对CDialog::Create函数的描述:http://msdn.microsoft.com/en-US/library/yhth57kd(v=vs.100).aspx
我没有遇到过你说的对话框属性的问题。
你可以参考链接上的程序实现子对话框。
Please mark this reply as answer if it helps you! Thanks for your cooperation! Good Luck to you.
-
您创建子对话框(WS_CHILD属性)的时候,MoveWindow来调整子对话框的显示区域即可。
CNewDlg m_dlgChild; .... // 创建子对话框(Style: Child, Border : None) if(NULL == m_dlgChild.GetSafeHwnd()) { m_dlgChild.Create(IDD_DIALOG1, this); } CRect rc; GetClientRect(&rc); m_dlgChild.MoveWindow(&rc, FALSE); m_dlgChild.ShowWindow(SW_SHOW);
Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
- 已标记为答案 Helen Zhao 2012年5月25日 5:03