
应该是你在关闭中存在没有处理的窗口 *** 作,这个可能是线程、控件没有收到或者处理关闭消息,注意在OnClose或者其它关闭处理函数中手动将这些关闭掉(你的描述只能看出,窗口已经关闭,但程序没有退出完成的时候,依然有代码进行窗口 *** 作)
有三种方法可以使终止线程。1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。
3. 使用interrupt方法中断线程。
1. 使用退出标志终止线程
当run方法执行完后,线程就会退出。但有时run方法是永远不会结束的。如在服务端程序中使用线程进行监听客户端请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在一个循环中,如while循环。如果想让循环永远运行下去,可以使用while(true){……}来处理。但要想使while循环在某一特定条件下退出,最直接的方法就是设一个boolean类型的标志,并通过设置这个标志为true或false来控制while循环是否退出。下面给出了一个利用退出标志终止线程的例子。
点击后它本来就会调用afx_msg void OnBnClickedCancel()
把
CDialogEx::OnCancel()
写回就好了
如果是防止空格和Enter退出程序,
用preTranslateMessage函数对键盘的Enter和空格键按下的消息进行拦截!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)