我正在使用MFC应用程序和DialogBox的proglem。我很安静,确保我已经完成了本教程的所有工作:https://msdn.microsoft.com/en-us/library/6wb9s9ah.aspx 但它仍然没有工作...... 1.我用简单的菜单命令创建了新项目。 2.我创建了新菜单项(+ ID)和新资源DialogBox(+ ID)。 3.然后我用类向导添加了一个名为CParameters的新类。对于我在CDialog中输入的BaseClass。 4.我在菜单项上创建了新的处理程序并添加了代码
CParameters dlg;
dlg.DoModal();
我认为就是这样,这应该有用......但它没有...缺少什么? 这是我的项目,您可以自由访问它: https://www.dropbox.com/sh/e6ajoxqk76hkuvn/AACRMY8bgcuyXguFwP240QB9a?dl=0
此外,我想插入TextEditors并从对话框中更改程序中的参数。
答案 0 :(得分:1)
扫描源代码表明您正在尝试处理将要显示对话框的类中的菜单项事件。
void CParameters::OnParam()
{
// TODO: Add your command handler code here
CParameters dlg;
dlg.DoModal();
}
我没有看到你实际实例化对话类的其他任何地方(我可能已经错过了它)。你在尝试的是不正确的。您无法在显示对话框的同一个类中处理菜单项事件,因为该类(CParameters)尚未实例化,因此,它无法响应菜单事件。通常,菜单事件将在大型机类中处理。
答案 1 :(得分:0)
如果您是通过从简单的SDI应用程序添加新菜单项来执行此操作,那么尝试在
中添加该部分代码CMainFrame::OnEdit
此处使用的OnEdit方法是从事件处理程序获取的新菜单项,消息类型是COMMAND。