怎样模拟doModal对话框
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,今天就跟大家聊聊有关怎样模拟doModal对话框,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在DLL中封装了一个非模态对话框窗口,但是在运行
千家信息网最后更新 2025年01月24日怎样模拟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安全错误
数据库的锁怎样保障安全
手机热点服务器名称怎么看
金蝶的加密服务器怎么找视频
武汉网络安全监察处
软件开发公司人力资源文案
香港服务器 价格
rust怎么一聊天就退出服务器
某软件开发公司因业务发展需要
江苏省网络安全短信
杭州软件开发基本工资
张店客户管理软件开发公司
安徽红嘴鸥网络技术公司
高端服务器处理器进口
济南浪潮存储服务器零售商
怎样可以修改数据库后直接查询
软件开发业绩提成方案
陕西网络安全职业技术学院
csgo服务器给管理员
邮件常见数据库有哪些
棋牌游戏软件开发厂家
怎么区分网站进入数据库
奕斯伟2022软件开发工程师
共享软件开发方案
软件开发属于元宇宙吗
在手机上怎样联接服务器
五大道派出所开展网络安全宣传
网络技术方面的初中基本知识
网络安全顾问是做什么工作
软件开发技能视频
收入支出明细表数据库
app要租服务器吗