处于死循环的窗口不是当前工作窗口,想用快界键使其停止工作,如何做?
解决方案 »
- DEVICEIOCONTROL执行不成功
- 哪位大虾帮忙解决下,安装VC++6竟然也出错!!!
- 用IDispatch的方法创建Outlook或者Word失败!有没有遇到过这种情况的???
- 请问一下高手们关于ACCESS的一些问题,我很急,老会出异常!!!
- 视图更换后显示问题,在线等~~
- 菜鸟问题,如何制作一个DLL然后另外一个程序调用DLL中的一个函数?
- 大家来看看,如何解决这个问题!(关于activex control显示对话框的问题)
- 为什么不能在空数据库中插入记录??
- 一个很弱但高分的问题
- 内置modem编程,有一定的难度,请大虾帮忙解决
- 在2k中如何实现免登陆画面
- 谁知道函数RegisterServiceProcess()在哪个DLL里面
快捷键是键盘消息,你可以在WM_KEYDOWN消息里处理,设置退出:BOOL m_bExit=TRUE;在你的循环体中检查UI消息,如果有消息就处理掉,这样就能够退出。
m_bExit = FALSE;
while(...) {
...
MSG message;
if(::PeekMessage(&message, NULL, 0, 0, PM_REMOVE) ){
::TranslateMessage(&message);
::DispatchMessage(&message);
}if( m_bExit )
break; //退出循环
}
别人的程序用TerminateProcess直接关了进程
如果不是同一个线程,那么就不需要pump message。你说的问题也不会出现。方法:
你可以把你的点击OK后应该干的工作(就是循环之类的...),放入一个worker thread中去做,这样你的另一个窗口就可以收到UI消息。
还是需要在工作线程的循环里判断条件,在你的控制窗口里设置条件。