我在这个对话框里重载了OnDestroy函数,并在其中设置断点,但点击结束对话框
时没有运行到断点;该线程的ExitInstance()函数也不执行;重载了
void CDrawDlg::OnSysCommand( UINT nID, LPARAM lParam )
{
if((nID & 0xFFF0)==SC_CLOSE)
{
//::PostThreadMessage(::GetCurrentThreadId(),WM_QUIT,0,0);
::AfxEndThread(0);
}
CDialog::OnSysCommand( nID,lParam );
}
点击对话框的系统菜单,该函数也不执行;真不知道对话框是怎么关闭的;请大侠们指点一下,
我的程序简要如下:
主程序:if(m_pDrawThread=AfxBeginThread(RUNTIME_CLASS(CDrawThread),
THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL))//建立线程
{
m_pDrawThread->m_bAutoDelete=true;
m_pDrawThread->ResumeThread();
::Sleep(50);
}
else
AfxMessageBox("无法打开显示对话框");
用户界面线程:m_Dlg.Create(IDD_DRAWDLG);//这里用模式对话框一样;
m_Dlg.ShowWindow(SW_SHOW);
// m_pMainWnd=&m_Dlg;这句加上也没用
时没有运行到断点;该线程的ExitInstance()函数也不执行;重载了
void CDrawDlg::OnSysCommand( UINT nID, LPARAM lParam )
{
if((nID & 0xFFF0)==SC_CLOSE)
{
//::PostThreadMessage(::GetCurrentThreadId(),WM_QUIT,0,0);
::AfxEndThread(0);
}
CDialog::OnSysCommand( nID,lParam );
}
点击对话框的系统菜单,该函数也不执行;真不知道对话框是怎么关闭的;请大侠们指点一下,
我的程序简要如下:
主程序:if(m_pDrawThread=AfxBeginThread(RUNTIME_CLASS(CDrawThread),
THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL))//建立线程
{
m_pDrawThread->m_bAutoDelete=true;
m_pDrawThread->ResumeThread();
::Sleep(50);
}
else
AfxMessageBox("无法打开显示对话框");
用户界面线程:m_Dlg.Create(IDD_DRAWDLG);//这里用模式对话框一样;
m_Dlg.ShowWindow(SW_SHOW);
// m_pMainWnd=&m_Dlg;这句加上也没用
如果有的话调用PostQuitMessage()试试看