多线程中不可以使用Messagebox

来源:互联网 发布:手机屏幕特效软件 编辑:程序博客网 时间:2024/05/16 11:45
MessageBox是属于CWnd的成员函数,根据C++的继承和多态,当你从Cwnd派生一个类的时候,自动派生一个MessageBox出来,所以你在CWnd派生类中调用MessageBox其实是调用的他自己的MessageBox。这个你懂的。而AfxBeginThread创建一个新线程,其实的过程函数已经脱离窗口本身,过程函数必须使用全局函数或是静态函数,这个你也懂的。而静态函数只能调用静态函数或静态成员,这个你应该也懂的。所以过程函数不能调用MessageBox。现在这个你也懂了。最后要告诉你的是,在过程函数中你可以使用AfxMessageBox而不是MessageBox。学会了吗?
0 0