Мнемонические схемы
Мнемоническая схема - это выбранная буква или цифра в надписи кнопки или в тексте статического органа управления. Система перемещает фокус ввода данных в орган управления, связанный с мнемонической схемой всякий раз, когда пользователь или нажимает клавишу, которая соответствует мнемонической схеме, или нажимает эту клавишу и клавишу ALT в комбинации. Мнемоника предоставляет быстрый способ для пользователя, чтобы передвигаться в заданный орган управления, используя клавиатуру.
Приложение создает мнемоническую схему для органа управления, вставляя амперсанд (&) непосредственно перед выбранной буквой или цифрой в надписи или тексте для органа управления. В большинстве случаев, символьная строка с нулем в конце, передаваемая органу управления в шаблоне диалогового окна содержит амперсанд.
Однако, приложение может создать мнемоническую схему в любое время, заменяя существующую надпись органа управления или текст, используя функцию SetDlgItemText. Только одна мнемоническая схема может быть определена для каждого органа управления. Хотя это и рекомендуется, мнемонические схемы в диалоговом окне не должны быть уникальны.
Когда пользователь нажимает клавишу буквы или цифры, система сначала выясняет, обрабатывает ли текущий орган управления, имеющий фокус ввода данных, эту клавишу. Система отправляет сообщение WM_GETDLGCODE органу управления, и, если орган управления возвращает значение DLGC_WANTALLKEYS или DLG_WANTMESSAGE, система передает клавишу в орган управления. Или же, она ищет орган управления, мнемоническая схема которого соответствует указанной букве или цифре. Система продолжает искать до тех пор, пока не определит местонахождение органа управления или не проверит все органы управления. В ходе поиска, она пропускает любые статические органы управления, которые имеют стиль SS_NOPREFIX.
Если поиск органа управления с соответствующей мнемонической схемой встречается с окном стиля WS_EX_CONTROLPARENT, система рекурсивно ищет потомков окна.
Если система определяет местонахождение статического органа управления и этот орган управления не отключен, система перемещает фокус ввода данных в первый после статического орган управления, который является видимым, не заблокированным и он имеет стиль WS_TABSTOP. Если система определяет местонахождение какого-либо другого органа управления, который имеет соответствующую мнемоническую схему, она перемещает фокус ввода данных в этот орган управления. Если орган управления - заданная по умолчанию (типичная) командная кнопка, система отправляет уведомительное сообщение BN_CLICKED процедуре диалогового окна. Если орган управления - другой стиль кнопки и нет никакого другого органа управления в диалоговом окне, имеющего ту же самую мнемоническую схему, система отправляет сообщение BM_CLICK органу управления.