Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать окошко которое не будет на себя переключать фокус [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]

обработать  в нем получение фокуса так, чтоб оно отдавало его назад :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо