怎样模拟doModal对话框
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,今天就跟大家聊聊有关怎样模拟doModal对话框,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在DLL中封装了一个非模态对话框窗口,但是在运行
千家信息网最后更新 2026年11月04日怎样模拟doModal对话框
今天就跟大家聊聊有关怎样模拟doModal对话框,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
在DLL中封装了一个非模态对话框窗口,但是在运行时希望能阻塞主线程,但是不阻塞界面
void DoEvent();DWORD WINAPI doModal(LPVOID p){ INT i = 0; while (1) { i++; Sleep(30); if (i == 83)break; static MSG msg; if (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { AfxGetApp()->PumpMessage(); } } return 0;}void DoEvent(CScale3DCMessageBoxDlg &dlg){ MSG msg; //取消息,检索应用程序的消息队列,PM_REMOVE取过之后从消息队列中移除 if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { //发消息 ::TranslateMessage(&msg); ::DispatchMessage(&msg); dlg.SendMessage(msg.message, msg.wParam, msg.lParam); }}extern "C" __declspec(dllexport) VOID __stdcall CreateMsgBox(CWnd * parent){ CScale3DCMessageBoxDlg pDlgMsgBox; pDlgMsgBox.Create(IDD_DIALOG1, parent); pDlgMsgBox.ShowWindow(SW_SHOW); HANDLE hThread[1]; DWORD threadId; hThread[0] = CreateThread(NULL, 0, doModal, 0, 0, &threadId); DWORD dwRet; do { dwRet = ::MsgWaitForMultipleObjects(1, hThread, FALSE, INFINITE, QS_ALLINPUT); if (dwRet != WAIT_OBJECT_0) { pDlgMsgBox.UpdateWindow(); DoEvent(pDlgMsgBox); } } while ((dwRet != WAIT_OBJECT_0) && (dwRet != WAIT_FAILED));}看完上述内容,你们对怎样模拟doModal对话框有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
对话框
对话
内容
消息
队列
阻塞
应用程序
是在
更多
模态
界面
知识
程序
篇文章
线程
行业
资讯
资讯频道
频道
进一
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
高科技互联网
中国互联网科技工作委员会毛军
美国互联网保险保险科技
互联网属科技
科技信息互联网
礼当家互联网科技
互联网金融科技创新
广州凡科互联网科技
广州紫鲸互联网科技
互联网金融和金融科技
互联网 科技馆
互联网科技公司的市场部门
安控科技rtu产品工业互联网
南山科技园互联网公司有哪些
栖莱科技互联网股份有限公司
互联网科技大奖都有哪些公司
广州富喜互联网络科技
广州百诚互联网科技有限公司官网
互联网营销推广黑科技
兰石爱特工业互联网科技分公司
广东猪兼强互联网科技有限公司
山东特亿宝互联网科技有限公司
互联网的科技
科技赋能下的互联网金融
互联网科技有限公司图片
甘肃拓世互联网科技有限公司
小米互联网科技园设置
宝灵互联网科技有限公司
互联网科技接地气
悟空问答互联网科技