Здравствуйте, GVS, Вы писали:
GVS>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него. GVS>Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..
Этот вопрос неоднократно обсуждался на RSDN, поиск вроде опять заработал. Обычно вспоминпают WS_EX_NOACTIVATE и пару созвучных мышиных сообщений.
(Кстати, WM_NCHITTEST/HTTRANSPARENT упомянуты тут зря).
Здравствуйте, GVS, Вы писали:
GVS>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него. GVS>Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..
Взгляните на WM_MOUSEACTIVATE — должно быть то, что нужно
Как сделать так чтобы окно никогда не получало фокус ?
Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него.
Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..
Здравствуйте, GVS, Вы писали:
GVS>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него. GVS>Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..
ловить
WM_NCHITTEST
и возвращать
HTTRANSPARENT
...
Re: Как сделать так чтобы окно никогда не получало фокус ?
Здравствуйте, 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]: Как сделать так чтобы окно никогда не получало фокус
Здравствуйте, 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]: Как сделать так чтобы окно никогда не получало фокус
Здравствуйте, xzxz, Вы писали:
X>Здравствуйте, GVS, Вы писали:
GVS>>Задача сделать так чтобы на любом действии на всплывающем окне (моя программа — виртуальная клавиатура) фокус не переходил на него. GVS>>Возвращать фокус не подходит так как при потере фокуса интерфейс (чужой) программы, над которой всплывает окно меняется. И фокус уже некому возвращать..
X>ловить
WM_NCHITTEST
и возвращать
HTTRANSPARENT
...
Фокус к окну переходит а сообщений оно больше не получает. Не то.
Re[3]: Как сделать так чтобы окно никогда не получало фокус
Здравствуйте, 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>Не подходит, тк окно должно получать эти сообщения.
а окно не может получать их через глобальные хуки?