У меня есть приложение SDI с ручным просмотром, документацией и мейнфреймом. В классе просмотра у меня есть кнопка, чтобы открыть другое диалоговое окно, скажем, диалоговое окно фрахтования. Я хотел бы открыть этот диалог и отправить начальное значение из представления, чтобы назначить некоторую переменную в диалоге, но я не могу перехватить событие сообщения в классе диалога. Ниже мой код:
// button onclick to show new dialog
charteringDlg = new CharteringDlg();
// show chartering dialog
if(charteringDlg->Create(IDD_DIALOG_CHATTERING, GetDesktopWindow()))
{
bChartering = true;
charteringDlg->MoveWindow(900,300,450,300);
charteringDlg->ShowWindow(SW_SHOW);
int temp = 12;
GetMain()->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
}
и в диалоговом окне фрахтования я обрабатываю сообщение, как показано ниже
ON_MESSAGE(UWM_MYMESSAGE_CHARTERING, &CharteringDlg::OnSetShowTemp)
функция фрахтования
LRESULT CharteringDlg::OnSetShowTemp(WPARAM, LPARAM lParam)
{
int * s = (int *)lParam;
return 0;
}
Я установил точку останова в функции OnSetShowTemp(), но она не может перейти туда. Любая идея будет принята с благодарностью.
GetMain()->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
->charteringDlg->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
. Или еще проще:charteringDlg->thevalueorwhatever = 12
. - person Jabberwocky   schedule 18.01.2019