Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: CL | DM;

Вниз

Как сделать окошко которое не будет на себя переключать фокус   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.032 c
14-1130920332
kaif
2005-11-02 11:32
2005.11.27
Задачка про доску


14-1131175374
SergP
2005-11-05 10:22
2005.11.27
Помогите найти что-нить для RadioEthernet а


5-1103495421
k@rt
2004-12-20 01:30
2005.11.27
Перерисовка TPageControl


14-1131346373
Cvin
2005-11-07 09:52
2005.11.27
"Hello World!" shareware


2-1131801001
KostR
2005-11-12 16:10
2005.11.27
Можно ли програмно сравнить две даты?