Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Эмуляция извещения WM_NOTIFY - клика NM_DBLCLK


Автор: Promosoft 4.6.2009, 21:22
Есть ListView.

Описал извещение NM_DBLCLK, необходимо воспроизвести двойной клик мыши, только через нажатие клавиши интер.

Отловил нажатие VK_RETURN (в правильности ловли не сомневаться, проверял), отправляю сообщение
Код
SendMessage(hwndList, WM_NOTIFY, NM_DBLCLK, 0L);

Понимаю сообщение составлено неправильно, т.к. программа вылетает.
Подскажите как правильно?

Автор: GremlinProg 4.6.2009, 21:46
правильно заглянуть в MSDN: http://msdn.microsoft.com/en-us/library/bb774867(VS.85).aspx

Автор: Promosoft 4.6.2009, 22:09
Смотрел естественно, не догнал. Подскажите правильный вариант.

Автор: GremlinProg 4.6.2009, 22:21
Код

NMITEMACTIVATE params;
...
params.hdr.code = NM_DBLCLK;
...
SendMessage(hwndParent, WM_NOTIFY, idCtrl, (LPARAM)&params);

hwndParent - окно, на котором лежит listview
idCtrl - идентификатор listview, для которого эмулируется двойной клик
остальные параметры все там же: http://msdn.microsoft.com/en-us/library/bb774771(VS.85).aspx

Автор: Promosoft 4.6.2009, 22:34
GremlinProg, Спасибо, помогло.

ps: долго гуглил, не мог найти такой пример.

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