Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > SetForegroundWindow не меняет состояние заголовка |
Автор: alexcustov 17.5.2012, 21:42 |
Имеется HWND чужого окна, вызываю для него SetForegroundWindow() чтобы активировать. Активацию жду по двум условиям: 1) GetForegroundWindow() == искомому HWND 2) GetWindowInfo() для этого окна возвращает WS_ACTIVECAPTION в поле dwWindowStatus всё работает, кроме окон от одного приложения. Там второе условие никогда не выполняется. Причём если я пошлю клавиатурный ввод через SendInput(), то он там отображается, то есть окно как бы в фокусе, но его заголовок неактивен. Мышкой окно активируется как надо, заголовок становится активным. Почему так? Параметры этого окна, взятые из Spy++: Window styles: WS_CAPTION WS_MINIMIZE WS_VISIBLE WS_CLIPSIBLINGS WS_CLIPCHILDREN WS_SYSMENY WS_THICKFRAME WS_OVERLAPPED WS_MINIMIZEBOX WS_MAXIMIZEBOX Extended window styles: WS_EX_LEFT WS_EX_LTRREADING WS_EX_RIGHTSCROLLBAR WS_EX_TOPMOST WS_EX_WINDOWEDGE Class styles: CL_DBLCLKS |
Автор: GremlinProg 18.5.2012, 07:38 | ||
приложение могло активный заголовок просто нарисовать ( DrawCaption ), независимо от того, активно окно или нет, так что WS_ACTIVECAPTION тут может быть несогласным с глазами |