2013-08-15 1 views
1

Я пытался подключиться к CWnd :: Create method. Я попытался подключиться с помощью SetWindowsHookEx api. Но это не работает последовательно. Итак, я следил за следующим блогом http://www.codeproject.com/Articles/49319/Easy-way-to-set-up-global-API-hooks и пытался подключиться к CreateWindowEx api.Глобальное подключение к Cwnd :: Создать с помощью MHook

Здесь я не уверен, будет ли CreateWindowEx вызываться из Cwnd :: Create API.

Можем ли мы подключиться к Cwnd :: Создать процедуру с использованием MHOOK? Если это подключение к CreatWindowEx является правильным api для прослушивания Cwnd :: Create calls?

+0

Вы конкретно после этого вызова или создаваемого окна. Вы можете использовать 'SetWinEventHook' для последнего. – chris

+0

Меня интересует созданное окно. Но SetWinEventHookEx не работает последовательно. После googling о нем многие из них сказали, что SetWindowHookEx не работает последовательно. Итак, я пытаюсь с библиотекой MHook, которая казалась очень прямой. Я не уверен, вызовет ли CWnd :: Create вызов CreateWindowEx. – Mami

+0

'CWnd :: Create' (и' CWnd :: CreateEx') в конечном итоге вызывает Windows API 'CreateWindowEx'. В зависимости от настроек препроцессора это расширяется до «CreateWindowExA» или «CreateWindowExW». Сам MFC устанавливает крюк WH_CBT' непосредственно перед вызовом в 'CreateWindowEx' и удаляет его, когда вызов возвращается. Если вы зацепите «CreateWindowEx», и этот вызов является результатом создания MFC окна, обязательно соблюдайте правила, и никто не пострадает. – IInspectable

ответ

0

Пожалуйста, перейдите по этой ссылке http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/e71f690a-00de-4032-95e2-21660e2235f6/setwindowshookex-on-windows-7

Не все клавиатуры и мыши крючки ранжированы, только глобалам. И маршалинг крюка выполняется по очереди сообщений потоков. Таким образом, поток, который устанавливает hook, ДОЛЖЕН вызывать метод пересылки сообщений.

Смежные вопросы