VC中,如何让点击按钮后就会退出程序?

VC中,如何让点击按钮后就会退出程序?,第1张

IDOK执行郑宏CDialog::OnOk()是退出对话框, 不一定会退出程序,如果返回到APP里的DoModal又没地其它的就会中毁退出程序。卖丛备。可以用AfxGetMainWnd()->PostMessage(WM_QUIT,0,0)退出程序

WaitForSingleObject用INFINITE 等不到行猜event ,永远挂消做起,你可以让主线程SetEvent(handle)来通知事件激发,使其返回。或者改造你的程序,用下面的方式

HANDLE m_Event[2]

m_Event[0] = CreateEvent(NULL, FALSE, FALSE, NULL)

m_Event[1] = CreateEvent(NULL, FALSE, FALSE, NULL)

这样,你可以用m_Event[0] 来表示退出事件,m_Event[1]来表示你现在的handle

然后用WaitForMultipleObjects(2,m_Event, FALSE, INFINITE),第三个参数为不等待所有信号,即等待任何一个激发信号都可以返回,这样,你线程函数如下使用,只要2个event任何一个激发,你都可以检查状态,是退出或者等到对象

DWORD dr

while (true)

{

dr = WaitForMultipleObjects(2,m_Event, FALSE, INFINITE)

switch (dr)

{

case WAIT_OBJECT_0://退出线程

return 0

case WAIT_OBJECT_0+1://这里等同于你WaitForSingleObject的拿带衡处理

//........

break

}

}

这样你主线程想结束线程时,只要SetEvent(m_Event[0] );线程就退出了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12426057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存