我正在开发一个应用程序,允许用户编辑在应用程序的其他部分生成的发票。查看发票时,如果选择了编辑>编辑发票,则会启动模式对话框
void CViewInvoiceView::OnEditEditinvoice()
{
CEditInvoiceDlg dlg;
if (dlg.DoModal() == IDOK)
{
// Do Stuff
}
}
这很好用。但是,由于最近的规范更改,我现在需要提取与发货信息相关的字段,并通过单击第一个对话框中包含的编辑发送按钮,在单独的对话框中对其进行编辑。 / p>
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()函数中放置一个断点,那么它就永远不会停止。单击编辑运送按钮实际上会关闭它所包含的对话框,而不是打开第二个。
答案 0 :(得分:0)
查看resource.h文件,确保没有两个ID分配给同一个号码。您还应该检查以确保它们都不在保留范围内:MSDN TN020: ID Naming and Numbering Conventions