mfc如何在非对话框类中获取对话框的句柄

2025-01-05 03:57:29
推荐回答(3个)
回答1:

用static 窗口变量返回你的窗口指针就好了。

在你的窗口中,设定一个static指针,并在窗口初始化时赋值。
static CViewTree* m_pTreeView = this;
并定义一个static方法,返回这个static指针。
static CViewTree* ReturnView()
{
return m_pTreeView;
}
在你的类中,直接获取就好了,但须用IsWindow函数来判定获取的是否是窗口。
CViewTree* m_pView = CViewTree::ReturnView();
ASSERT(::IsWindow(m_pView->m_hWnd));

回答2:

有两种方式:

  1. 在非对话框类初始化的时候传入该对话框的指针,或者在该类中添加对话框资源类型的指针变量然后赋值。

  2. 使用回调函数的方式,将要显示的数据回调给主界面。

     

  3. 使用SendMessage()或者PostMessage()向主窗口发送消息

回答3:

定义全局变量不行么。