Форум: "WinAPI";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
ВнизКак сделать окошко которое не будет на себя переключать фокус Найти похожие ветки
← →
Still Swamp (2005-09-21 18:32) [0]Как сделать окошко которое не будет на себя переключать фокус при клике по нему мышкой.
← →
Desdechado © (2005-09-21 19:14) [1]обработать в нем получение фокуса так, чтоб оно отдавало его назад :)
← →
Anatoly Podgoretsky © (2005-09-21 19:21) [2]Невозможно. Противоречит принципам работы Виндоус.
← →
Still Swamp (2005-09-21 19:28) [3]to Anatoly Podgoretsky
Полная ерунда. Любая On Screen Keyboard. Например osk.exe
← →
Still Swamp (2005-09-21 19:31) [4]to Desdechado
Блыманье заголовка окошка наблюдается, и плюс если у того окнана потерю фокуса стоят события -они начинают активно срабатывать... Нежелательно.
← →
Джо © (2005-09-21 19:37) [5]
> [4] Still Swamp (21.09.05 19:31)
> Блыманье заголовка окошка наблюдается,
У osk.exe тоже наблюдается "блыманье заголовка".
> и плюс если у того окнана потерю фокуса стоят события -они
> начинают активно срабатывать
Не назначай никаких нежелательных обработчиков.
← →
begin...end © (2005-09-21 19:38) [6]> Still Swamp (21.09.05 18:32)
Расширенный стиль WS_EX_NOACTIVATE (только для 2000/XP).
> Anatoly Podgoretsky © (21.09.05 19:21) [2]
LOL
← →
Anatoly Podgoretsky © (2005-09-21 19:41) [7]Still Swamp (21.09.05 19:28) [3]
Чем подтвердишь? Только глазами, так фокус можно отдать другому окну.
← →
Джо © (2005-09-21 19:41) [8]
> [6] begin...end © (21.09.05 19:38)
Это "не совсем то". Все равно придется вручную ловить активирование окна и запрещать это.
Windows 2000/XP: The WS_EX_NOACTIVATE value for dwExStyle prevents foreground activation by the system. To prevent queue activation when the user clicks on the window, you must process the WM_MOUSEACTIVATE message appropriately. To bring the window to the foreground or to activate it programmatically, use SetForegroundWindow or SetActiveWindow. Returning FALSE to WM_NCACTIVATE prevents the window from losing queue activation. However, the return value is ignored at activation time
← →
Anatoly Podgoretsky © (2005-09-21 19:44) [9]begin...end © (21.09.05 19:38) [6]
Точно.
Но в MSSDK нет этого флага, поскольку новый.
← →
Still Swamp (2005-09-21 19:46) [10]to Anatoly Podgoretsky
Ну тем не менее... можно же :) И винде не противоречит.
← →
Anatoly Podgoretsky © (2005-09-21 19:47) [11]Still Swamp (21.09.05 19:46) [10]
Пошли на поводу :-)
← →
Still Swamp (2005-09-22 11:07) [12]Ок... хорошо.
Фокус можно передатьвот так: SendMessage(FActiveWindow, WM_SETFOCUS, 0, 0);
А как активировать окно. WM_ACTIVATE у меня не срабатывает. ЧТо то видимо не доделал.
← →
ANB © (2005-09-23 11:26) [13]
> Still Swamp (22.09.05 11:07) [12]
- путаешь активность окна и фокус.
← →
psa247 © (2005-09-28 09:35) [14]Смотри хуки типа CBT. Если передать 0 - то позволишь Windows передать фокус окну, 1 - предотвратить.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c