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

1.程序中有一个后台运行线程,与界面无关,作用是实时刷新一些数据,然后将数据传给界面显示。2.但现在我要往显示数据的对话框发消息(该对话框是嵌入在容器中,没有标题栏),通... 1.程序中有一个后台运行线程,与界面无关,作用是实时刷新一些数据,然后将数据传给界面显示。
2.但现在我要往显示数据的对话框发消息(该对话框是嵌入在容器中,没有标题栏),通知该对话框有新的数据产生。请问如何获取这个对话框句柄,不然发不了消息给它。我试了N种方法都不行。
展开
 我来答
任明星Ming
2013-08-08 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1144万
展开全部
用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));
stray_painter
2013-08-08 · 超过21用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:46.2万
展开全部

有两种方式:

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

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

     

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-08
展开全部
定义全局变量不行么。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式