社区
Windows客户端开发
帖子详情
messagebox 无法阻止程序运行
homesmile
2009-07-10 08:58:01
在程序中,当读取结束时,弹出消息框message,界面上的控件都不能使用,但是其他程序仍然在运行,导致读取的时间越长,messagebox越多,请问怎么使messagbox显示时,程序都停止,当响应messagebox后,程序再运行
MessageBoxW(_T("读取完成"),_T("提示"),MB_TASKMODAL|MB_OK);
只有3个参数
...全文
151
11
打赏
收藏
messagebox 无法阻止程序运行
在程序中,当读取结束时,弹出消息框message,界面上的控件都不能使用,但是其他程序仍然在运行,导致读取的时间越长,messagebox越多,请问怎么使messagbox显示时,程序都停止,当响应messagebox后,程序再运行 MessageBoxW(_T("读取完成"),_T("提示"),MB_TASKMODAL|MB_OK); 只有3个参数
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MS_Frank
2009-07-14
打赏
举报
回复
你的理解有误,MessageBox,当执行这个函数后,它会阻调用它的线程的运行(就是会挂起调用线程)。当单击“确定”后才会恢复。。
楼主你首先要理解线程和进程的关系。你自然就明白了。
homesmile
2009-07-14
打赏
举报
回复
多谢各位!已经解决,
::KillTimer(NULL,timerHandle);
MessageBox(_T("读取完成"),_T("提示"),MB_OK);
timerHandle=::SetTimer(NULL,1, TIMER_DELAY, (TIMERPROC) Timer);
上次没有给事件句柄再次赋值。
homesmile
2009-07-13
打赏
举报
回复
修改了,但是还是不好用,在定时器的程序中使用messageboxW,这样不行吗?
::KillTimer(NULL,timerHandle);
int messageid=MessageBoxW(_T("读取完成"),_T("提示"),MB_OK);
if (messageid==IDOK)
{
::SetTimer(NULL,1, TIMER_DELAY, (TIMERPROC) Timer);
return;
}
else
{
SuspendThread(GetCurrentThread());
}
问题,第一次好用,在以后还是很多messagabox弹出,请问怎么修改?
世外涛缘
2009-07-13
打赏
举报
回复
要想把所有线程都阻塞,那就得在messagebox弹出之前,遍历进程内的所有线程,调用SuspendThread。
等messagbox之后,在遍历所有线程,调用ResumeThread。
(messagebox所在的线程不用这么做了,messagebox已经做了阻塞线程和恢复的动作)
beyondma
2009-07-13
打赏
举报
回复
只能阻这个线程,不能阻进程:)
载舟之水
2009-07-13
打赏
举报
回复
SuspendThread 其他线程
xmsheji
2009-07-12
打赏
举报
回复
支持楼上,多线程是这样的。
zkhraul
2009-07-12
打赏
举报
回复
单线程是肯定不会有这问题的
儿大不由爷
2009-07-12
打赏
举报
回复
阻工作的线程就行了
hhygcy
2009-07-10
打赏
举报
回复
你是不是在一个线程里面弹出messagebox的
那样是不能阻止主线程的
homesmile
2009-07-10
打赏
举报
回复
这是那段代码,设置断点跟踪,当messagebox执行后,又返回来执行ReadShow,没有执行if判断,而且messagebox的返回值也不对,怎么回事?
if (type == MIFARE_1K && blocksRead >= NUM_1K_BLOCKS)
{
ReadShow();
int messageid=MessageBox(_T("读取完成"),_T("提示"),MB_OK);
if (messageid==IDOK)
{
return;
}
else
{
SuspendThread(GetCurrentThread());
}
// return;
}
天琊超级进程监视器V1.02
功能介绍: 软件主体功能和以往VB版的几乎一样,灵活运用可以很有效的防止病毒入侵以及让人头疼的溢出... 目前版本不支持在界面上浏览日志,但是可以在
程序运行
目录找到以时间命名的日志文件比如20090304155204.log
VC++常用功能实例
系统只能允许一个
程序运行
7 在状态栏中添加时间 8 研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5字符 12 改变颜色...
VC++常用的共用函数100多页
系统只能允许一个
程序运行
7 在状态栏中添加时间 8 研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5字符 12 改变颜色...
VC++ 专家指导.doc
(78) 在我的程序的某些部分,我可以调用
MessageBox
函数来建立一个信息对话框,例如在视类中。 67 (79) 我需要在我的程序中设置全局变量,以使文档中的所有类都能访问。我应该吧它放到哪儿? 68 (80) 我听说...
C#浏览器编程,学习使用
4 浏览器网络编程(共两周) 4.1 浏览器工作原理(老师讲解1学时,... // 启动
程序运行
时 // // // //***********************************************// private void Form1_Load(object sender, EventArgs e) ...
Windows客户端开发
7,655
社区成员
18,845
社区内容
发帖
与我相关
我的任务
Windows客户端开发
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
复制链接
扫一扫
分享
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章