语言: C++
开发环境: Microsoft Visual C++
使用的库: MFC
我对MFC还比较新,所以请谅解。我有一个通过DoModal()启动的对话框。我试图向该对话框添加按钮,以替换默认的“确定”和“取消”按钮。现在,我无法弄清楚如何做到这一点。我删除了“确定”和“取消”按钮,并添加了具有新ID的新按钮,添加了事件处理程序,并为它们编写了一些简单的代码,以便在按下按钮时执行,但我无法使其正常工作。
我怀疑这与DoModal()期望从“确定”或“取消”获得响应有关,而其他情况则不是。但我不是很确定。任何帮助都将不胜感激!
编辑:参考代码已削减。
void CPrefsDlg::Launch() {
[ ... ]
CSAPrefsDialog dlg;
INT_PTR nRet = -1;
nRet = dlg.DoModal();
// Handle the return value from DoModal
switch ( nRet )
{
case -1:
AfxMessageBox("Dialog box could not be created!");
break;
case IDABORT:
// Do something
break;
case IDOK: // This works just fine.
exit(0);
break;
case IDSAVEONE: // This does not work.
MessageBox("Save One");
break;
default:
break;
};
}
void CPrefsDlg::SaveOne()
{
// I tried adding in my own handler for 'Save One'...this does not work.
MessageBox("Save one");
}
ON_BN_CLICKED(IDSAVEONE, &CSAPrefsDialog::SaveOne)
。如果您从对话框编辑器中添加单击处理程序,则会自动为您创建此内容。 - Rup