如何在MFC的View类中获取指向对话框的指针

如何在MFC的View类中获取指向对话框的指针,第1张

首先从对话框的按钮处理函数中获得mainframe指针

cmainframe

pmain=(cmaimframe

)afxgetapp()->m_pmainwnd;

然后获得相应视图指针cyourview

pview=(cyourview

)pmain->getactiveview();

最后获得视图对应的当前文档指针

cdocument

pcurrentdoc

=(cframewnd

)m_pmainwnd->getactivedocument();

以上需要注意在对话框类中包含mainfrmh和相应的视图类的头文件

在你的对话类中响应wm_size消息,系统将自动生成一个onsize()函数,在该函数里面添加下面代码就可以得到:

void

cdatafileimportdlg::onsize(uint

ntype,

int

cx,

int

cy)

{

cdialog::onsize(ntype,

cx,

cy);

crect

rect;

getclientrect(&rect);

}

rect

中就有你想要宽度,大小等信息。

FindWindow函数是获取顶层窗口的函数,不能获取子窗口。

FindWindowEx才是获取指定窗口的子窗口句柄(指针)的函数,要成功获取,需要以下几个条件:

第一参数必须指定明确的父窗口,如果为NULL,则是获取顶层窗口(即,父窗口为桌面);

被查找窗口(控件)必须和第二参数是明确的父子关系,且子窗口不是模态窗口(模态窗口有些特殊,一般不这样获取);

子窗口获取可能不是一次成功,如果类似子窗口很多,可能需要判断hwndChildAfter。

从你图中代码,无法判断需要获取的是否是顶层窗口,如果是,那么第一参数要写ClassName,而不是你的资源号,比如这样:

CWnd pwnd = FindWindow(NULL,_T("资源管理器"));

如果是希望获取子窗口,在MFC下不推荐使用这两个函数。

另外,报错是因为在UNICODE字符集的工程下,第一参数需要使用宽字节字符串,加上_T转换就可以了。

以上就是关于如何在MFC的View类中获取指向对话框的指针全部的内容,包括:如何在MFC的View类中获取指向对话框的指针、MFC中如何获取Dialog的指针、关于C++MFC窗口控件句柄获取问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10065390.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存