![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать окошко которое не будет на себя переключать фокус [D7, WinXP]
Still Swamp © (2005-09-21 18:32:00)Как сделать окошко которое не будет на себя переключать фокус при клике по нему мышкой.
psa247 (2005-09-28 09:35:00) [1]Смотри хуки типа CBT. Если передать 0 - то позволишь Windows передать фокус окну, 1 - предотвратить.
ANB (2005-09-23 11:26:00) [2]
> Still Swamp (22.09.05 11:07) [12]
- путаешь активность окна и фокус.
Still Swamp (2005-09-22 11:07:00) [3]Ок... хорошо.
Фокус можно передатьвот так: SendMessage(FActiveWindow, WM_SETFOCUS, 0, 0);
А как активировать окно. WM_ACTIVATE у меня не срабатывает. ЧТо то видимо не доделал.
Anatoly Podgoretsky (2005-09-21 19:47:00) [4]Still Swamp (21.09.05 19:46) [10]
Пошли на поводу :-)
Still Swamp (2005-09-21 19:46:00) [5]to Anatoly Podgoretsky
Ну тем не менее... можно же :) И винде не противоречит.
Anatoly Podgoretsky (2005-09-21 19:44:00) [6]begin...end © (21.09.05 19:38) [6]
Точно.
Но в MSSDK нет этого флага, поскольку новый.
Anatoly Podgoretsky (2005-09-21 19:41:00) [7]Still Swamp (21.09.05 19:28) [3]
Чем подтвердишь? Только глазами, так фокус можно отдать другому окну.
Джо (2005-09-21 19:41:00) [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
begin...end (2005-09-21 19:38:00) [9]> Still Swamp (21.09.05 18:32)
Расширенный стиль WS_EX_NOACTIVATE (только для 2000/XP).
> Anatoly Podgoretsky © (21.09.05 19:21) [2]
LOL
Джо (2005-09-21 19:37:00) [10]
> [4] Still Swamp (21.09.05 19:31)
> Блыманье заголовка окошка наблюдается,
У osk.exe тоже наблюдается "блыманье заголовка".
> и плюс если у того окнана потерю фокуса стоят события -они
> начинают активно срабатывать
Не назначай никаких нежелательных обработчиков.
Still Swamp (2005-09-21 19:31:00) [11]to Desdechado
Блыманье заголовка окошка наблюдается, и плюс если у того окнана потерю фокуса стоят события -они начинают активно срабатывать... Нежелательно.
Still Swamp (2005-09-21 19:28:00) [12]to Anatoly Podgoretsky
Полная ерунда. Любая On Screen Keyboard. Например osk.exe
Anatoly Podgoretsky (2005-09-21 19:21:00) [13]Невозможно. Противоречит принципам работы Виндоус.
Desdechado (2005-09-21 19:14:00) [14]обработать в нем получение фокуса так, чтоб оно отдавало его назад :)