Указатель на чужое окошко
Может кто-либо помочь с таким вопросом:
:???: Во время работы проги создаётся чужое окошко. Мне нужно поставить на него указатель. Желательно во время создания этого окна.
Вот...
Заранее Спасибо
Во-вторых поставить указатель, какой? картинку со стрелочкой :) или как?
Во-вторых указатель енто CWnd *pSomeVar
8)
EnumDesktopWindows
The EnumDesktopWindows function enumerates all top-level windows on a desktop by passing a handle to each window, in turn, to an application-defined callback function.
BOOL EnumDesktopWindows(
HDESK hDesktop, // handle to desktop to enumerate
WNDENUMPROC lpfn, // callback function
LPARAM lParam // value to pass to callback function
);
Parameters
hDesktop
[in] Handle to the desktop whose top-level windows are to be enumerated. The CreateDesktop, OpenDesktop, and GetThreadDesktop functions return a desktop handle. If this parameter is NULL, the current desktop is used.
lpfn
[in] Pointer to an application-defined EnumWindowsProc callback function.
lParam
[in] Specifies an application-defined value to be passed to the callback function.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Windows 2000 or later: If there are no windows on the desktop, GetLastError returns ERROR_INVALID_HANDLE.
Remarks
The EnumDesktopWindows function repeatedly invokes the lpfn callback function until the last top-level window is enumerated or the callback function returns FALSE.
А вопрос такого проядка: как написать обработчик ВМ_КРЕЙТ чужого окна? И при этом получить указатель на окно? Или хендл....
Заранее спасибо
Цитата:
Originally posted by Elf
:) Ok спасибо большое! 8)
А вопрос такого проядка: как написать обработчик ВМ_КРЕЙТ чужого окна? И при этом получить указатель на окно? Или хендл....
Заранее спасибо
:) Ok спасибо большое! 8)
А вопрос такого проядка: как написать обработчик ВМ_КРЕЙТ чужого окна? И при этом получить указатель на окно? Или хендл....
Заранее спасибо
Вдобавок к EnumDesktopWindows(): есть еще ф-ция FindWindow()...
Насчет WM_CREATE не уверен, что можно. Дело в том, что можно подменить ф-цию обработки сообщения для заданного класса окна. Делается это с помощью SetClassLong(). Для этого нужно, чтобы класс был зарегистрирован. Обычно класс окна регистрируется непосредственно перед созданием такого окна. Можно ли отследить момент регистрации класса окна, я не знаю... Если бы было можно, то в этот момент подменяем ф-цию обработки сообщений на свою, в ней ловим WM_CREATE, все остальное передаем предыдущему обработчику и радуемся.
Что касается "получить указатель или хэндл", так один из параметров ф-ции обработки сообщений - хэндл окна. Его и получать не надо, сам придет :)
А вот финкция SetWindowsHookEx как она работает? (если можно с примером)
Заранее благодарен