MFC(7) 利用CWinThread实现跨线程父子MFC窗口
来源:互联网 发布:网络作者亘古传奇 编辑:程序博客网 时间:2024/05/17 01:10
http://jetyi.blog.51cto.com/1460128/1074315/
- class CUIThread : public CWinThread
- {
- DECLARE_DYNCREATE(CUIThread)
- protected:
- CUIThread(); // protected constructor used by dynamic creation
- virtual ~CUIThread();
- public:
- virtual BOOL InitInstance();
- virtual int ExitInstance();
- protected:
- DECLARE_MESSAGE_MAP()
- public:
- HWND m_hParentWnd; //注意,它是父窗口句柄,不能是CWnd*对象.
- };
- BOOL CUIWinThread::InitInstance()
- {
- // TODO: perform and per-thread initialization here
- ASSERT(::IsWindow(m_ hParentWnd));
- CWnd* pParent = CWnd::FromHandle(m_hParentWnd);//注意这行
- CUIChildDlg* pDlg = new CUIChildDlg(pParent);
- pDlg->Create(CUIChildDlg::IDD, pParent);
- pDlg->ShowWindow(SW_SHOW);
- return TRUE;
- }
- void CUIChildDlg::OnNcDestroy()
- {
- CDialog::OnNcDestroy();
- // TODO: Add your message handler code here
- ::PostQuitMessage(0);//为了使线程自动退出.
- }
- BOOL CMFCSingleDocTestApp::InitInstance()
- {
- ... …
- // The one and only window has been initialized, so show and update it
- m_pMainWnd->ShowWindow(SW_SHOW);//主窗口
- m_pMainWnd->UpdateWindow();
- // call DragAcceptFiles only if there's a suffix
- // In an SDI app, this should occur after ProcessShellCommand
- m_pUIThread = (CUIWinThread*)AfxBeginThread(RUNTIME_CLASS(CUIWinThread),
- THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);//创建后先不要启动.
- m_pUIThread->m_hParentWnd = m_pMainWnd->m_hWnd;//主窗口句柄.
- m_pUIThread->ResumeThread();
- return TRUE;
- }
- int CMFCSingleDocTestApp::ExitInstance()
- {
- //TODO: handle additional resources you may have added
- AfxOleTerm(FALSE);
- ASSERT(NULL != m_pUIThread);
- ::WaitForSingleObject(m_pUIThread->m_hThread, INFINITE);
- return CWinAppEx::ExitInstance();
- }
阅读全文
0 0
- MFC(7) 利用CWinThread实现跨线程父子MFC窗口
- MFC(7) 利用CWinThread实现跨线程父子MFC窗口
- 利用CWinThread实现跨线程父子MFC窗口
- 利用CWinThread实现跨线程父子MFC窗口
- 新手使用MFC基于CWinThread实现线程通信
- MFC-CWinThread
- CWinThread线程派生类MFC多线程框架
- 通过继承CWinThread实现MFC多线程
- CWinThread in MFC
- MFC多线程CWinThread实例
- MFC多线程CWinThread实例
- MFC架构之CWinThread
- MFC多线程CWinThread实例
- mfc窗口和线程
- MFC架构之CWinThread类
- MFC 中关于CWinThread应用
- MFC架构之CWinThread类
- MFC架构之CWinThread类
- 【Scikit-Learn 中文文档】神经网络模型(无监督)- 无监督学习
- ubuntu server 16.04 ,如何将优盘内容复制到server中
- matlab——cell(以及和struct的转换)
- Java_JVM参数-XX:MaxDirectMemorySize 与 两种 ByteBuffer: heap,direct ByteBuffer
- 如何使用python API?
- MFC(7) 利用CWinThread实现跨线程父子MFC窗口
- 变量、作用域和内存问题
- 从0到1 | 0基础/转行 如何用3个月学会Python机器学习
- 高通平台 reboot 分析
- C#常见错误解决方法
- React-Native之 修改包名(Android)
- StringUtils工具类的isBlank()方法使用说明
- JZOJ5485. 【清华集训2017模拟11.26】字符串
- 1025. 反转链表 (25) PAT乙级真题