Как сделать так чтобы окно никогда не получало фокус ?
От: GVS  
Дата: 23.12.09 06:19
Оценка:
Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него.
Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..
win api mfc c++
Re: Как сделать так чтобы окно никогда не получало фокус ?
От: xzxz Ниоткуда  
Дата: 23.12.09 06:47
Оценка:
Здравствуйте, GVS, Вы писали:

GVS>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него.

GVS>Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..

ловить
WM_NCHITTEST
и возвращать
HTTRANSPARENT
...
Re: Как сделать так чтобы окно никогда не получало фокус ?
От: c-smile Канада http://terrainformatica.com
Дата: 23.12.09 07:02
Оценка:
Здравствуйте, GVS, Вы писали:

GVS>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него.


The ::EnableWindow() function enables or disables mouse and keyboard input to the specified window or control. When input is disabled, the window does not receive input such as mouse clicks and key presses. When input is enabled, the window receives all input.

Re[2]: Как сделать так чтобы окно никогда не получало фокус
От: GVS  
Дата: 23.12.09 07:08
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, GVS, Вы писали:


GVS>>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него.


CS>

CS>The ::EnableWindow() function enables or disables mouse and keyboard input to the specified window or control. When input is disabled, the window does not receive input such as mouse clicks and key presses. When input is enabled, the window receives all input.



Не подходит, тк окно должно получать эти сообщения. Единственное что оно не должно делать — получать фокус.
Re[2]: Как сделать так чтобы окно никогда не получало фокус
От: GVS  
Дата: 23.12.09 07:47
Оценка:
Здравствуйте, xzxz, Вы писали:

X>Здравствуйте, GVS, Вы писали:


GVS>>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него.

GVS>>Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..

X>ловить
WM_NCHITTEST
и возвращать
HTTRANSPARENT
...


Фокус к окну переходит а сообщений оно больше не получает. Не то.
Re: Как сделать так чтобы окно никогда не получало фокус ?
От: kero Россия  
Дата: 23.12.09 07:49
Оценка: 1 (1)
Здравствуйте, GVS, Вы писали:

GVS>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него.

GVS>Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..

Этот вопрос неоднократно обсуждался на RSDN, поиск вроде опять заработал. Обычно вспоминпают WS_EX_NOACTIVATE и пару созвучных мышиных сообщений.

(Кстати, WM_NCHITTEST/HTTRANSPARENT упомянуты тут зря).
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[3]: Как сделать так чтобы окно никогда не получало фокус
От: Caracrist https://1pwd.org/
Дата: 23.12.09 09:51
Оценка:
Здравствуйте, GVS, Вы писали:

GVS>Здравствуйте, c-smile, Вы писали:


CS>>Здравствуйте, GVS, Вы писали:


GVS>>>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него.


CS>>

CS>>The ::EnableWindow() function enables or disables mouse and keyboard input to the specified window or control. When input is disabled, the window does not receive input such as mouse clicks and key presses. When input is enabled, the window receives all input.



GVS>Не подходит, тк окно должно получать эти сообщения.


а окно не может получать их через глобальные хуки?
~~~~~
~lol~~
~~~ Single Password Solution
Re: Как сделать так чтобы окно никогда не получало фокус ?
От: AviDen  
Дата: 23.12.09 10:36
Оценка: -1
Здравствуйте, GVS, Вы писали:

GVS>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него.

GVS>Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..

Взгляните на WM_MOUSEACTIVATE — должно быть то, что нужно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.