Я работаю над приложением, которое позволяет пользователям редактировать счета-фактуры, созданные в других частях приложения. При просмотре счета, если выбран Правка> Редактировать счет , запускается модальное диалоговое окно
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 (), она никогда не остановится на этой точке. Нажатие кнопки Редактировать доставку фактически закрывает диалоговое окно, в котором она содержится, вместо открытия секунды.