Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VC6中的多模态对话框?_C++_Visual C++_Mfc_Modal Dialog_Visual C++ 6 - Fatal编程技术网

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文件。谢谢