Здравствуйте, SvarogBarg, Вы писали:
SB>Уважаемые коллеги. SB>Ставлю hook WH_SYSMSGFILTER обрабатываю HookCode = MSGF_MENU и дальше смотрю что за сообщения приходят в lParam (это указатель на структуру MSG) message. Так вот там при открытии popup меню вываливаются сообщения WM_MOUSEMOVE,WM_MENUSELECT,WM_TIMER но никак не WM_INITMENU или WM_INITMENUPOPUP. SB>Так как все-таки отловить именно момент открытия popup меню. SB>Спасибо.
WH_SYSMSGFILTER ловит далеко не все мессаги — лучше использовать WH_CALLWNDPROC.
WM_INITXXXX посылается не менюхе, а окну-родителю.
Поэтому лучше либо обрабатывать WM_INITXXX в своем окне, либо использовать WH_CALLWNDPROC. Если вы хотите блокировать либо менять эти сообщения "на лету", то хуками эта задача не решается. Придется перехватывать SendMessage/PostMessage, но лучше просто придумать как обойтись без модификации WM_INITXXXX-сообщений.