Диалоговое окно – это временное окно, которое показывает на экране информацию или запрашивает пользователя о вводе данных. Обобщенное приложение включает в себя блок диалога About (О программе…). Каждое приложение должно включать в себя диалоговое окно About. Блок диалога показывает на экране такую информацию как имя приложения и информацию об авторских правах.
Вы создаете и показываете на экране блок диалога при помощи использования функции DialogBox. Эта функция берет шаблон диалогового окна и создает блок диалога.
Обобщенное приложение включает в себя нижеследующий шаблон диалогового окна в файле определения ресурса:
DIALOG FIXED 6, 21, 198, 99 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "About Generic" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "&OK", IDOK, 72, 74, 40, 14 LTEXT "Generic Application", 104, 45, 14, 128, 8 LTEXT "Written as a sample", 105, 45, 35, 59, 8 LTEXT "Microsoft Corporation", 106, 45, 45, 98, 8 LTEXT "Copyright (c) 1996", 107, 45, 54, 138, 8 ENDAboutDlg |
Имя источника определено как AboutDlg. Для получения дополнительной информации, см. статью Ресурс диалогового окна.
Когда пользователь нажимает кнопку About в меню Help, нижеследующий код в оконной процедуре показывает на экране диалоговое окно About:
WM_COMMAND: switch( wParam ) { case IDM_ABOUT: DialogBox( ghInstance, "AboutDlg", hWnd, (DLGPROC) AboutDlgProc ); break; } break;case |
Последний параметр - указатель на процедуру диалогового окна. Он имеет нижеследующий прототип.
LRESULT WINAPI AboutDlgProc( HWND, UINT, WPARAM, LPARAM ); |
Процедура диалогового окна похожа на оконную процедуру, но обычно обрабатывает только инициализацию диалогового окна и сообщения ввода данных пользователем. Обобщенное приложение содержит нижеследующее сообщение, обрабатывающее код:
( uMsg ) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch( wParam ) { case IDOK: EndDialog( hDlg, TRUE ); return TRUE; } break; } return FALSE;switch |