获取指向对话框表单的 CWnd 的指针
Posted
技术标签:
【中文标题】获取指向对话框表单的 CWnd 的指针【英文标题】:To get pointer to CWnd of dialog form 【发布时间】:2016-11-17 08:42:26 【问题描述】:我有以CSrvDlg
对话框形式作为主窗口的 MFC 应用程序:
BOOL CSrvApp::InitInstance()
CWinApp::InitInstance();
CSrvDlg SrvDlg;
...
INT_PTR nResponse = SrvDlg.DoModal();
我需要创建子对话框表单。但出于这个原因,我需要获取指向主窗体的CWnd
的指针,以传递构造函数参数,如指向父窗口的指针。如何获取指向我的SrvDlg
表单的CWnd
的指针?
【问题讨论】:
相信你已经从@S那里得到了答案。指田。但是你应该更详细地解释这一点。创建模态对话框后,在用户单击“确定/取消”之前,您无法从对话框外部执行任何操作。我不确定你打算用那个手柄做什么。 如果您像今天的 earlier question 所暗示的那样从主窗体创建子对话框,那么您将传递this
指针,因为 CDialog 是 CWnd。
【参考方案1】:
因为CSrvDlg是CWnd的子类,所以可以通过获取CWnd*指针
CWnd* ptr = &SrvDlg;
或明确
CWnd* ptr = static_cast<CWnd*>(&SrvDlg);
【讨论】:
以上是关于获取指向对话框表单的 CWnd 的指针的主要内容,如果未能解决你的问题,请参考以下文章