Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.015 c
4-1127744726
XGarik
2005-09-26 18:25
2005.11.27
Убить процесс на КПК


3-1129038011
stepan_mk
2005-10-11 17:40
2005.11.27
ODAC & ORAARRAY


2-1131304186
ЯТутаНовичек
2005-11-06 22:09
2005.11.27
Помогите с TDate


4-1127888849
Igi
2005-09-28 10:27
2005.11.27
Заблокировать клавиатуру


14-1130921576
TUser
2005-11-02 11:52
2005.11.27
Освобождение ресурсов при завершении процесса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский