急急急!!!! overload the OnClose event. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在对话框类里,有一个OnDestory()函数利用他就可以了,请给分! 在对话框类中 有一个函数为:void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else if( nID == SC_CLOSE ) { //在些添加询问对话框,并根据不同选择做相应处理 //要注意的是完成相应的存盘之后 CDialog::OnSysCommand(nID, lParam); } else { CDialog::OnSysCommand(nID, lParam); }} 我找不到ONSYSCOMMAND,只有ONCOMMAND,好象不行,请问该怎么办? 很多方法: zhguo676(zhguo)的在OnDestory()函数里做也可以建议在OnCancel里做,具体方法是:先放一个id为IDCANCEL的按钮(默认对话框有这个按钮),然后双击这个按钮写OnCancel代码就可以了 每个默认的对话框都有一个"确定"和"放弃"健,重载"放弃"的OnCancel在其中加入代码即可 我所用的:void CPlayListDlg::OnClose() {// CDialog::OnClose (); int retval = MessageBox("是否要保存?" "保存",MB_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL); if(retval== IDCANCEL) { AfxMessageBox("取消"); return; } else if (retval == IDYES) { AfxMessageBox("保存"); } //else(IDNO), do nothing! AfxMessageBox("不保存"); CPlayListDlg::DestroyWindow ();} int retval = MessageBox("是否要保存?",//不好意思,刚才少了个, "保存", MB_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL); CFileDialog Dlg_Save(FALSE)if(Dlg_Save.DoModal()==IDOK) { CString filepath=Dlg_Save.GetPathName();...... } 你只是说 出现“询问”是否要存盘的对话框?,呵呵~~我写的只是演示 “退出时询问”,要“出现象其他应用程序中的要保存时问你文件名”的话把小张写的放到AfxMessageBox("保存");后,在加上保存的过程! 发生访问冲突 救命 在View Document中添加一个模态对话框的显示 Console Application中使用fread怎么会出现“Please enter the path for fread.c”??? bho技术在其他ie内核浏览器中的疑问 如何去掉菜单栏和rebar栏之间的那条深深的分割线? 求教midl 命令的使用 VC/MFC硬件/系统类投诉和建议专帖 请贴一下在VC++中用代码直接创建一个Access *.mdb文件的代码(不需建立数据源) 请问atl中有下拉框的吗? 自动生成N个BUTTON的问题 请教高手:为什么try/catch对不管用? 字符转换问题
利用他就可以了,
请给分!
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else if( nID == SC_CLOSE )
{
//在些添加询问对话框,并根据不同选择做相应处理
//要注意的是完成相应的存盘之后
CDialog::OnSysCommand(nID, lParam);
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
zhguo676(zhguo)的在OnDestory()函数里做也可以
建议在OnCancel里做,具体方法是:
先放一个id为IDCANCEL的按钮(默认对话框有这个按钮),然后双击这个按钮写OnCancel代码就可以了
在其中加入代码即可
void CPlayListDlg::OnClose()
{
// CDialog::OnClose (); int retval = MessageBox("是否要保存?" "保存",MB_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL);
if(retval== IDCANCEL)
{
AfxMessageBox("取消");
return;
}
else if (retval == IDYES)
{
AfxMessageBox("保存");
}
//else(IDNO), do nothing! AfxMessageBox("不保存"); CPlayListDlg::DestroyWindow ();
}
"保存",
MB_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL);
if(Dlg_Save.DoModal()==IDOK)
{
CString filepath=Dlg_Save.GetPathName();
...... }
我写的只是演示 “退出时询问”,要“出现象其他应用
程序中的要保存时问你文件名”的话把小张写的放到
AfxMessageBox("保存");后,在加上保存的过程!