C++线程里面为什么不能用mfc包装的MessageBox函数?

佴如风re
2013-10-12 · TA获得超过4380个赞
知道小有建树答主
回答量:968
采纳率:0%
帮助的人:2295万
展开全部
有分吗? 好像没有,但江湖救急 ,道义所在。 跟着我的思路走,听好了! MFC 中的MessageBox 不用提供父窗口句柄,也就是API中的第一个参数,之所以不用提供,是因为mfc已经给你封装了,我们知道任何窗口都派生自CWnd类,它必须提供一个成员记住自己是与那个窗口相关联,于是 成员变量m_hWnd 华丽登场,然后在封装MessageBox(封装后是CWnd类的一个成员函数)时MFC把它传给API的MessageBox,并将其它两个参数指定默认值,所以MFC MessageBox中直接一个参数调用也可以。但是,正如我前面所说 ,MFC 中MessageBox是CWnd类的一个成员函数,所以在任何派生自CWnd类的都可以使用这个函数,所以当你的线程函数是派生自CWnd类的类的成员函数(线程函数可以是类的成员函数吗?这个问题留给你。)或友员函数时,在线程函数中才能使用MFC 中的MessageBox(实际上是CWnd::MessageBox),若线程函数时全局函数则不能访问类的成员函数,要不C++的封装就成摆设了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式