MFC实现UI线程

标签:
mfcui线程it |
MFC实现UI线程
本文同步发到http://codekernel.wordpress.com/。
1、
建立好的工程如下所示:
2、添加一个类MyThread,基类是:CWinThread
在MyThread.h文件里添加如下代码:
DECLARE_DYNCREATE(MyThread)//声明动态生成
public:
public:
DECLARE_MESSAGE_MAP()//声明消息映射
在MyThread.cpp里添加代码如下:
在文件的开头添加:(这一行比较重要)
IMPLEMENT_DYNCREATE(MyThread, CWinThread)//这里是要调用的,不然就会
什么消息映射:
//MyThread.cpp
BEGIN_MESSAGE_MAP(MyThread, CWinThread)
END_MESSAGE_MAP()
编写消息映射函数如下:
void MyThread::MyMessageHandler(WPARAM, LPARAM)
{
}
下面这两个函数几乎可以不用实现
InitInstance()
ExitInstance(){return CWinThread::ExitInstance();}
2、
MyThread* pThread;
这里发送消息了之后,就会在view里看见一行字,实现这个功能的代码在线程里。
运行结果如下:
后记:MFC里可以有两种线程,一种是工作线程,一种是界面线程。
工作线程是运行完就退出,UI线程将一直存在直到程序最后结束。
UI线程可以有自己的消息队列,但是工作线程是不可以有的。
不过有一个疑问,一个UI线程可以有多个消息队列吗?