我在线程里边使用
AfxMessageBox("!");
结果显示是显示了"!"
可是却不是在原窗体显示的那种会锁定程序其他操作的
而是还可以操作
请问我要怎么样使用这个才正确呢?CFeiYunlinKDlg* pDlg = (CAAADlg*) lpParameter;//定义窗口
AfxMessageBox("!");
结果显示是显示了"!"
可是却不是在原窗体显示的那种会锁定程序其他操作的
而是还可以操作
请问我要怎么样使用这个才正确呢?CFeiYunlinKDlg* pDlg = (CAAADlg*) lpParameter;//定义窗口
能够阻塞住当前线程
执行AfxMessageBox(...),再在该线程中调用主线程里的这个函数,让控制转移到主线程,在主线程中显示该消息框,就可以实现阻塞了。
若所在线程的窗口句柄为NULL(一般都是啦),会以桌面窗口作为父窗口在线程中AfxMessageBox(一般)不能(干扰)禁用主窗口(其他线程窗口)可以将CWnd指针(或HWND句柄)传进线程去,
使用CWnd的MessageBox
2、ON_MESSAGE(WM_AFXDLG,OnAfxDlg)
3、头文件里 afx_msg void OnAfxDlg(WPARAM wParam,LPARAM lParam);
4、void CXXXX::OnAfxDlg(WPARAM wParam,LPARAM lParam)
{
AfxMessageBox("显示对话框");//这里显示对话框
}
5、在线程序里::PostMessage(m_hwnd/*主对话框句柄*/,WM_AFXDLG,0,0);