DEFPUSHBUTTON "OK". IDOK. 24. 38. 50. 14
Это означает, что по умолчанию в окне этой кнопки находится фокус ввода. Пользователь может переключать фокус ввода щелчком мыши или нажатием клавиши Tab. Циклическая передача фокуса по нажатии этой клавиши происходит только между элементами, у которых в редакторе ресурсов свойство Tabstop установлено в состояние true. В шаблоне диалога реакция на табуляцию задана по умолчанию. При ее отмене в описании элемента появляется дополнительный флаг, как это показано в следующем определении:
DEFPUSHBUTTON "OK". IDOK. 24. 38. 50. 14. NOT WSJABSTOP
Оконный класс дочернего окна в описаниях кнопок явно не указан. В строке, описывающей элемент управления для ввода текста, указываются тип EDITTEXT, идентификатор IDCEDIT1 и координаты элемента в окне. Название оконного класса edit определяется типом элемента:
EDITTEXT IDCJDIT1. 53. 14. 21. 9
Для новых элементов управления, описание которых начинается со слова CONTROL, принят формат описания с явным указанием оконного класса:
CONTROL "<Название>". IDCJREEl. "SysTreeView32". 51. 7. 24. 14
Такой формат позволяет прикладному программисту создавать собственные управляющие элементы, оформляя их в виде СОМ-объектов. В данном случае вместо имени оконного класса указывается программное имя или глобально-уникальный идентификатор (GUID) объекта:
CONTROL "<Название>".IDC_MSFLEXGRID.
"{6262D3A0-531B-11CF-91F6-C2863C385E30}". WSJABSTOP. 7.44.180.69
Модальный диалог создается по показанному выше шаблону DIALOGMIN при помощи функции int DialogBoxParam(GetModuleHandlе(NULL). MAKEINTRESOURCE(DIALOGMIN). hWnd. (DLGPROC) DialogMin. 17). Ее можно вызвать из основного окна. Функция не возвращает управления, пока выведенное на экран диалоговое окно не будет уничтожено вызовом функции EndDialog(). При завершении функция возвращает код выхода.
Простейший модальный диалог Параметры функции DialogBoxParam() задают дескриптор приложения, идентификатор ресурса, дескриптор основного окна и имя оконной функции. Последний параметр (в данном примере его значение равно 17) передается оконной процедуре диалога в поле 1 Рагат сообщения WM_INITDIALOG. Он используется редко, поэтому вместо функции DialogBoxParam() можно применять макрос DialogBox (GetModuleHandlе(NULL). MAKEINTRESOURCE(DIALOGMIN), hWnd. (DLGPROC) DialogMin).