怎样模拟doModal对话框
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,今天就跟大家聊聊有关怎样模拟doModal对话框,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在DLL中封装了一个非模态对话框窗口,但是在运行
千家信息网最后更新 2025年11月14日怎样模拟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安全错误
数据库的锁怎样保障安全
sql数据库多久可以入门
计算机信息网络安全自学
个人笔记本架设服务器
无锡应用软件开发教程
优聘网络技术
数据库高水位影响
360杀毒有服务器版么
w10安全中心服务器中卸载
猫头鹰服务器散热
惠普服务器售后400
数据库连接和驱动jar包
核电网络安全宣传视频
服务器启动后能不能上网
如何监控数据库指标
浙江电视墙服务器安装
网络技术依据点
施乐找不到服务器
精神类疾病数据库
搭建代理服务器有问题
软件开发入职个人介绍
放心的生产管理软件开发流程
谷粒商城1核2G的服务器够吗
服务器没有备案
启动服务显示连接数据库失败
网络安全黑板报高中简单
微信软件开发公司电话是多少
数据库中建立一个学生表
数据库的核心技术有哪些
银行需要软件开发的吗
网络安全审查导图