- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
- BOOL g_bWillExit = FALSE;
- CXxxDlg::OnInitDialog()
- {
- CWinThread *m_pWinThread;
- HANDLE m_hEvent;
- g_bWillExit = FALSE;
- m_pWinThread = AfxBeginThread((AFX_THREADPROC)threadGetMsg, (LPVOID)this);
- m_pWinThread->SuspendThread();
- m_pWinThread->m_bAutoDelete = FALSE;
- m_pWinThread->ResumeThread();
- m_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
- if (m_hEvent == NULL)
- {
- return FALSE;
- }
- }
- DWORD WINAPI threadGetMsg(PVOID param)
- {
- CINeedDlg *pMainDlg = (CINeedDlg *)param;
- DWORD dwTimeOut = 10*1000;
- while(g_bWillExit == FALSE)
- {
- WaitForSingleObject(pMainDlg->m_hEvent, dwTimeOut);
- ResetEvent(pMainDlg->m_hEvent);
- if (g_bWillExit == FALSE &&
- pMainDlg->m_bPauseMsg == FALSE)
- {
- PostMessage(pMainDlg->m_hWnd, WM_SHOW_MSGDLG, 0, 0);
- }
- }
- return 0;
- }
- OnClose()
- {
- g_bWillExit = TRUE;
- SetEvent(m_hEvent);
- if (m_pWinThread)
- {
- WaitForSingleObject(m_pWinThread->m_hThread, INFINITE);
- delete m_pWinThread;
- m_pWinThread = NULL;
- }
- }
复制代码 |
|