码迷,mamicode.com
首页 > 其他好文 > 详细

getparent方法的一些陷阱、m_pParentWnd

时间:2016-08-06 20:34:32      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

在mfc中大家经常用GetParent方法获取父窗口指针,但你会发现有时候他返回的并不是你理解上的父窗口,为什么了? 这是变态的微软隐含的一些约束导致的。

子窗口是不可以作为Dialog的父窗体的,至少MFC中是不能。

// a popup window cannot be owned by a child window

while (hWnd != NULL && (::GetWindowLong(hWnd, GWL_STYLE) & WS_CHILD)) hWnd = ::GetParent(hWnd);

如果想获得Dialog的父窗体,请使用Dialog::m_pParentWnd。

在文档视图模型中由于view是mainframe的子窗口,则以view作为父窗口的对话框等通过getparent获取的都是mainframe窗口。

以下CTestDlg构造的时候

技术分享

 

getparent方法的一些陷阱、m_pParentWnd

标签:

原文地址:http://www.cnblogs.com/develop-me/p/5744773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!