Приложение отправляет на обработку сообщение WM_CHANGEUISTATE, чтобы указать, что состояние интерфейса пользователя (UI) должно измениться.
lResult = SendMessage( (HWND) hWndControl, // дескриптор целевого органа управления (UINT) WM_CHANGEUISTATE, // ID сообщения (WPARAM) wParam, // = (WPARAM) () wParam; (LPARAM) lParam // = (LPARAM) () lParam; );
wParam
Младшее слово устанавливает действие, которое будет предпринято. Этот элемент может быть одним из ниже перечисленных значений.
Значение |
Предназначение |
| UIS_CLEAR | Элемент, хранящий состояние UI, заданный старшим словом, должен быть скрыт. |
| UIS_INITIALIZE | Элемент, хранящий состояние UI, заданный старшим словом должен измениться, основываясь на последнем событии ввода данных. Дополнительную информацию, см. в разделе Замечания. |
| UIS_SET | Элемент, хранящий состояние UI, заданный старшим словом должен быть видим. |
Старшее слово определяет, какой элемент, хранящий состояние UI, воздействует или стиль органа управления. Он может состоять из одного или нескольких ниже перечисленных значений.
Значение |
Предназначение |
| UISF_HIDEACCEL | Ускорители клавиатуры. |
| UISF_HIDEFOCUS | Индикаторы фокуса. |
| UISF_ACTIVE | Windows XP: Орган управления должен рисоваться в стиле, используемом для активных органов управления. |
lParam
Этот параметр не используется и должен быть ПУСТО (NULL).
Возвращаемых значений нет.
Окно должно отправлять на обработку это сообщение себе или своему родителю тогда, когда оно должно изменить элементы, хранящие состояние UI всех окон одной и той же иерархии. Оконная процедура должна позволять DefWindowProc обрабатывать это сообщение так, чтобы все дерево окна имело совместимое состояние UI. Когда окно верхнего уровня получает сообщение WM_CHANGEUISTATE, оно отправляет на обработку сообщение WM_UPDATEUISTATE с одними и теми же параметрами всем дочерним окнам. Когда система обрабатывает сообщение WM_UPDATEUISTATE, она делает изменение в состоянии UI.
Если младшее слово wParam - UIS_INITIALIZE, система отправит на обработку сообщение WM_UPDATEUISTATE с состоянием UI, основанным на последнем событии ввода данных. Например, если последний ввод данных поступил от мыши, система скроет команды вызова программы клавиатуры. И наоборот, если последний ввод данных поступил от клавиатуры, система покажет команды вызова программы клавиатуры. Если состояние, которое следует из обработки WM_CHANGEUISTATE, является одним и тем же, значит это старое состояние, а DefWindowProc не отправляла на обработку это сообщение.
Обзор Ускорители клавиатуры, Сообщения, используемые ускорителями клавиатуры, DefWindowProc, HIWORD, LOWORD, WM_QUERYUISTATE, WM_UPDATEUISTATE
| Размещение и совместимость WM_CHANGEUISTATE | ||
| К | Windows XP | Да |
| л | Windows 2000 Professional | Да |
| и | Windows NT Workstation | Нет |
| е | Windows Me | Нет |
| н | Windows 98 | Нет |
| т | Windows 95 | Нет |
| С | Windows Server 2003 | Да |
| е | Windows 2000 Server | Да |
| р | Windows NT Server | Нет |
| в | ||
| е | ||
| р | ||
| Используемая библиотека | - | |
| Используемая DLL | - | |
| Заголовочный файл | ||
| - объявлено в | Winuser.h | |
| - включено в | Windows.h | |
| Unicode | Нет | |
| Замечания по платформе | Не имеется | |