这是个很简单又是编程中经常要遇到的问题。向窗口发送WM_CLOSE消息,调用CWnd::OnClose成员函数,允许对用户提示是否保存修改过的数据。
Example: AfxGetMainWnd()->SendMessage(WM_CLOSE)
还可以创建一个自定义的函数TerminateWindow
void TerminateWindow(LPCSTR pCaption)
{
CWnd *pWnd = Cwnd::FindWindow(NULL, pCaption);
if (pWnd)
pWnd ->SendMessage(WM_CLOSE);
}
说明: FindWindow函数不是提倡的做法,因为它无法处理标题栏自动改变,比如我们要检测 Notepad是不是已运行而事先不知道Notepad的标题栏,这时FindWindow就无能为力了,可以通过枚举 windows任务列表的办法来实现。在机械出版社"Windows 95 API开发人员指南"一书有比较详细的介绍,这里就不再多说乐。