Операционная система Microsoft Windows 3.1 для программиста -том 2

         

Файл dlgtab\dlgtab.res


#include "g:\tcwin\include\windows.h" #include "dlgtab.hpp"

APPICON ICON "dlgtab.ico"

SELECT DIALOG 12, 28, 157, 138 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Карточка сотрудника" BEGIN CONTROL "", IDC_NAME, "EDIT", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_GROUP | WS_TABSTOP, 7, 20, 143, 12 CONTROL "&Должность", IDC_FUNCTION, "BUTTON", BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 7, 35, 79, 48 CONTROL "Инженер", IDC_ENGINIER, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 44, 72, 12 CONTROL "Старший инженер", IDC_SENGINIER, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE, 11, 55, 73, 12 CONTROL "Программист", IDC_PROGRAMMER, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE, 11, 67, 73, 12 CONTROL "&Прочее", IDC_OTHER, "BUTTON", BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP, 7, 84, 80, 47 CONTROL "English", IDC_ENGLISH, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 93, 74, 12 CONTROL "Знает Си", IDC_C, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 11, 105, 74, 12 CONTROL "Знает Паскаль", IDC_PASCAL, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 11, 116, 73, 12 CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 114, 38, 36, 14 CONTROL "Cancel", IDCANCEL, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE, 114, 56, 36, 14 ICON "APPICON", -1, 134, 4, 16, 16, WS_CHILD | WS_VISIBLE CONTROL "Ф.И.О.", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE, 7, 9, 27, 8 END

В этом файле нас больше всего интересует расстановка стилей WS_GROUP и WS_TABSTOP.

Стиль WS_TABSTOP используется для тех органов управления, к которым нужно обеспечить доступ с помощью клавиши <Tab>
.
В нашей диалоговой панели этот стиль имеют следующие органы управления: редактор текста IDC_NAME, используемый для ввода фамилии, имени и отчества сотрудника; переключатель "Инженер" (первый переключатель в группе "Должность");
переключатель "English" (первый переключатель в группе "Прочее");
кнопка с надписью 'OK". Запустив приложение, вы можете убедиться, что если нажимать клавишу <Tab>
, фокус ввода будет передаваться между перечисленными выше органами управления.

Стиль WS_GROUP используется для отметки первого органа управления в группе. Внутри группы, созданной с помощью этого стиля, вы можете передавать фокус ввода при помощи клавиш перемещения курсора <Up>
и <Down>
.

В нашем случае группа "Должность" содержит три переключателя. Первый переключатель в группе ("Инженер") имеет стили WS_GROUP и WS_TABSTOP.

Следующий орган управления, имеющий стиль WS_GROUP, должен относиться к следующей группе органов управления. В нашем случае это орган управления BS_GROUPBOX с заголовком "Прочее". Этот орган управления завершает первую группу, но сам не входит в нее.

Первый орган второй группы органов управления также имеет стили WS_GROUP и WS_TABSTOP.

Последняя группа органов управления включает в себя кнопки "OK" и "Cancel". первая из этих кнопок имеет стиль WS_GROUP.

Пиктограмма и статический орган управления, описанные в последних строках шаблона, не могут получать фокус ввода.

Шаблон диалоговой панели приложения DLGTAB имеет еще одну особенность.

Обратите внимание, что перед буквой "Д" в слове "&Должность" стоит символ "&". Этот же символ расположен перед буквой "П" в слове "&Прочее". Это не опечатка. Мы намеренно использовали символ "&" для того чтобы продемонстрировать еще одну возможность диалоговых панелей. Речь идет о клавиатурном интерфейсе, предназначенном для передачи фокуса ввода органам управления диалоговой панели.

Если вы внимательно посмотрите на создаваемую нашим приложением диалоговую панель, то сможете заметить, что буквы, перед которыми стоит знак "&", отображаются подчеркнутыми (рис. 3.6). Клавиши, соответствующие подчеркнутым буквам, можно использовать для непосредственной передаче фокуса ввода. Если нажать комбинацию клавиш <Alt+Д>
, фокус ввода перейдет к первому органу управления из группы "Должность", а если <Alt+П>
- к первому органу управления из группы "Прочее".

Когда диалоговая панель содержит много органов управления, выбор нужного с помощью клавиши <Tab>
может отнять много времени. Использование описанного только что способа непосредственной передачи фокуса ввода может упростить задачу выбора нужного органа управления.

Файл описания ресурсов ссылается на пиктограмму, приведенную в листинге 3.13.


Содержание раздела