В главной функции потребуется вызвать модальный диалог, как показано ниже:

int APIENTRY WinMain (HINSTANCE KodPril.HINSTANCE. LPSTR, int ) {DialogBox - KodPril, "START", NULL. (DLGPROOStartProc); return 0;
}

После этого на экран будет выведено диалоговое окно, события в котором можно обрабатывать оконной процедурой диалога, код которой приведен в листинге 7.8.

Листинг 7.8

BOOL StartProcCHWND hDlg.UINT message. WPARAM wParam.LPARAM lParam) {
switch(message) {

case WM_INITDIALOG: //Здесь выполняется инициализация приложения

return TRUE; . л продолжение &

Диалоговые окна

Листинг 7.8 {продолжение)

case WM_LBUTT0ND0WN: break; case WM_COMMAND:
if (LOWORD(wParam)-IDCANCEL)
{EndDialog(hDlg. LOWORD(wParam)); return TRUE;
}
}
return FALSE; }

Как указывается в литературе, организация приложения на основе диалогового окна обеспечивает минимальные затраты времени процессора на работу операционной системы.

Элементы управления в диалоговых окнах Окна редактирования и статический текст Управляющие элементы Edit являются окнами класса edit. Они предназначены для ввода строки текста во внутреннюю переменную элемента.

Внешний вид и поведение элемента Edit настраиваются при помощи флагов стиля ES_LEFT, ES_MULTYLINE, ES_AUT0HSCR0LL, ES_WANTRETURN и других флагов, которые рассматривались в предыдущих разделах.

Обычно стиль элемента задается программистом при помещении его в диалоговое окно при помощи редактора ресурсов. Но при известном дескрипторе графического элемента управления флаги стиля можно легко изменить во время выполнения приложения при помощи функций GetWindowLong() и SetWindowLong(). Например, чтобы снять в элементе с идентификатором RADIUS флаг ES_MULTILINE, необходимо выполнить довольно простую последовательность действий:

1. Объявить рабочую переменную 1 ong Style.

2. Прочитать установленные флаги при помощи вызова функции GetWindow-Long(GetDlgltemChDlg. RADIUS).GWLJTYLE.Sty 1 e).

3. Снять флаг ES_ULTILINE, не изменяя остальных флагов, при помощи конструкции Style = Style&~ ES_MULTILINE.


⇐ Предыдущая| |Следующая ⇒