Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Сообщение от вида диалогу


Автор: xTr1m 16.10.2009, 21:42
Доброго времени суток, на диалог разместил вид. Пытаюсь послать сообщение о двойном нажатии мышой.
посылаю из вида
Код

CWnd *parentWnd=GetParent();
parentWnd->SendNotifyMessage(NM_DBLCLK, (WPARAM)GetDlgCtrlID(), (LPARAM)&nmListView);

ловлю на диалоге по-всякому:
Код

ON_NOTIFY(NM_DBLCLK, IDC_LIST_EX, &CDOUMonitoringDlg::OnNMDblclkList)

и в onnotify тоже ловил. Может по-другому нужно?

Автор: Earnest 17.10.2009, 18:39
SendNotifyMessage(...) != SendMessage (WM_NOTIFY, ...).
Почитай в MSDN про формат параметров WM_NOTIFY и действуй соответственно. Но учти, что lPARAM должен указывать на правильно заполненный NMHDR. И код уведомления придумай, причем постарайся не пересечься с чьим-либо стандартным кодом уведомления.
Кроме WM_NOTIFY можно использовать WM_COMMAND - это тоже кошерный способ уведомления родительского окна, и параметры там проще. А можно и вовме юзеровское сообщение зарегитрировать и ловить. Тогда не надо заботиться о соблюдении принятых условностей. Раз уж все равно придумывать код уведосления (что для WM_NOTIFY, что для WM_COMMAND), так проще свое сообщение сделать. Впрочем, дело вкуса...

А SendNotifyMessage тебе использовать нет смысла. 

Автор: xTr1m 18.10.2009, 09:26
Исправил на SendMessage и ловлю на диалоге в PreTranslateMessage. Спасибо за помощь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)