C++ VC6中的多模态对话框?
我正在开发一个应用程序,允许用户编辑应用程序其他部分生成的发票。查看发票时,如果选择了“编辑>编辑发票”,将启动一个模式对话框C++ VC6中的多模态对话框?,c++,visual-c++,mfc,modal-dialog,visual-c++-6,C++,Visual C++,Mfc,Modal Dialog,Visual C++ 6,我正在开发一个应用程序,允许用户编辑应用程序其他部分生成的发票。查看发票时,如果选择了“编辑>编辑发票”,将启动一个模式对话框 void CViewInvoiceView::OnEditEditinvoice() { CEditInvoiceDlg dlg; if (dlg.DoModal() == IDOK) { // Do Stuff } } 这个很好用。但是,由于最近的规范更改,我现在需要提取与装运信息相关的字段,并通过单击第一个对话框中
void CViewInvoiceView::OnEditEditinvoice()
{
CEditInvoiceDlg dlg;
if (dlg.DoModal() == IDOK)
{
// Do Stuff
}
}
这个很好用。但是,由于最近的规范更改,我现在需要提取与装运信息相关的字段,并通过单击第一个对话框中包含的“编辑装运”按钮,在单独的对话框中对其进行编辑
void CEditInvoiceDlg::OnButtonEditshipping()
{
CEditInvoiceShippingDlg shippingDlg;
shippingDlg.m_shipToList = &m_shipToList;
if (shippingDlg.DoModal() == IDOK)
{
// Do Stuff
}
}
我的问题是无法打开第二个对话框CEditInvoiceShippingDlg。消息映射看起来正常
BEGIN_MESSAGE_MAP(CEditInvoiceDlg, CDialog)
...
ON_BN_CLICKED(IDC_BUTTON_EDITSHIPPING, OnButtonEditshipping)
...
END_MESSAGE_MAP()
但如果我在OnButtonEditshipping函数中放置一个断点,它就不会在该点停止。单击“编辑传送”按钮实际上会关闭包含它的对话框,而不是打开一秒钟。查看resource.h文件,确保没有两个ID分配给同一个编号。您还应该检查以确保它们都不在保留范围内:啊,这就是问题所在!在更改规格之前,我使用该按钮从发票中删除所有装运信息,因此在开始处理新对话框时,我只是更改了ID和标题。从消息映射中删除“ON\u BN\u clickeddc\u BUTTON\u CLEARSHIPPING,ON buttonclarshipping”修复了该问题,但我也清理了我的resource.h文件。谢谢