2015-05-24 3 views
0

enter image description hereДобавление накладки к активному окну

Я пытаюсь выяснить, если есть способ в C# добавить такую ​​накладку в строку заголовка другого окна. Я пытаюсь сделать программу, которая контролирует ввод на клавиатуре и будет отображать подсказки, основанные на вводе определенного слова. У меня уже есть все остальное, но это.

+0

Да, но его не так просто. Это будет связано с записью DLL-крюка для получения уведомления, когда окно создается, удаляется, активируется, перемещается или изменяется. Прочтите [этот учебник] (http://www.codeproject.com/Articles/18638/Using-Window-Messages-to-Implement-Global-System-H) о том, как создавать общесистемные перехватчики на C#. Ваш крючок должен будет переопределить событие WM_PAINT. – Icemanind

ответ

0

Один из способов - подключить глобальную процедуру сообщений с помощью SetWindowsHookEx (WH_GETMESSAGE, ..., NULL), а затем в GetMsgProc() вы проверяете сообщения WM_PAINT, и если HWND является текущим верхним окном, сравнивая сообщение-> hwnd с результатом GetTopWindow (NULL), после чего вы можете добавить свой собственный код GDI Drawing.

Подробный пример кода Hooking DLL можно найти в ответе на этот вопрос How to draw graphics/text on top of another application

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