Главная страница
    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.013 c
2-1131802956
zxc
2005-11-12 16:42
2005.11.27
Народ подскажите неопытному


2-1131612167
iamkate
2005-11-10 11:42
2005.11.27
Сжатие файла


3-1129631803
Андрей__
2005-10-18 14:36
2005.11.27
Interbase и кириллица


14-1131008444
pavel_guzhanov
2005-11-03 12:00
2005.11.27
посоветуйте бесплатный хостинг


2-1131743215
Lemur
2005-11-12 00:06
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский