右键点建立类向导,d出如图对话框:
选WM_CLOSE或DestroyWindow(二者区别请上网搜索),点AddFunction,类向导会自动给你添加成员函数,在Member functions里选择刚才的成员函数,进入代码编辑,加入你杀死线程的代码。
mfc退出按钮代码如下:
// 在消息处理程序中添加消息处理程序
ON_COMMAND(IDC_BUTTON1, &CExitButtonDlg::OnBnClickedButton1)
// 函数定义
void CExitButtonDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
OnCancel(); // 关闭窗口
EndDialog(IDCANCEL); // 结束对话框
}
如果添加了system("pause"); 则不会执行下面的代码。相当于程序并没有结束。
方法:
在VS中配置项目属性->链接器->系统->子系统设为:控制台(/SUBSYSTEM:CONSOLE),然后用ctrl+F5运行(不调试运行)。
需要改动一下上面的程序,在调用AfxBeginThread时把此函数返回的CWinThread变量保存起来,比如定义一个类成员变量CWinThread m_pThread,调用AfxBeginThread的代码改成m_pThread= AfxBeginThread(ThreadRun,this);。而Stop里的代码可以写成:
DWORD dwCode;
GetExitCodeThread(m_pThread->m_hThread, &dwCode);
TerminateThread(m_pThread->m_hThread, dwCode);
CloseHandle(m_pThread->m_hThread);
以上就是关于MFC 如何在退出时执行某段代码全部的内容,包括:MFC 如何在退出时执行某段代码、mfc退出按钮代码、vs2017编辑mfc程序,显示“线程 0x163c 已退出,返回值为 0 (0x0)。”而且自动关闭对话框,怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)