---------------------------------------------------------------------------------------- ①、工作线程与界面线程的区别:消息循环 1、模态对话框有自己的消息循环; 但是也不建议在工作线程中执行界面方面的相关操作,会发生意想不到的错误! 2、非模态对话框需要其所在线程中有消息循环: 不信加个 Sleep 试试就知道了! MSG msg = {0}; while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } =================================================== ②、所以,在界面的操作时最好还是在界面线程中进行处理, 但是如果处理的是非本线程的窗口时建议用发消息的方式! 默认MFC类型的对话框工程、文档视图类工程等都是使用的MFC界面线程。 =================================================== ③、界面线程的创建: 1、从 CWinThread 类派生自己的子类:CUIThreadApp; 2、重载 InitInstance(必须重载) 与 ExitInstance(可选重载) 函数; 3、在 InitInstance 函数中进行界面的创建; 4、调用 AfxBeginThread 函数开启界面线程: AfxBeginThread(RUNTIME_CLASS(CUIThreadApp)); ===================================================