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

Диалоговые окна бывают:

-модальные;

-системные модальные;

-немодальные;

-стандартные окна диалога;

-окно сообщения;

Модальное –блокирует сообщения, поступающие к другим окнам приложения, кроме WM_PAINT.

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

Системное модальное окно диалога вынуждает пользователя, перед тем как он получит возможность сделать что-либо другое в Windows, завершить работу с ним.

Для создания модального диалового окна используется функция:

DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);

hInst – дескриптор приложения; IDD_ABOUTBOX - имя окна диалога (как оно определено в файле описания ресурсов); hWnd - описатель родительского окна окна диалога; About - адрес процедуры диалога. Функция DialogBox не возвращает управление в WndProc до тех пор, пока окно диалога не будет закрыто. Возвращаемым значением функции DialogBox является второй параметр функции EndDialog, которая вызывается в процедуре диалога.

EndDialog(hDlg, LOWORD(wParam));

Немодальные окна диалога создаются с помощью функции CreateDialog. Параметры этой функции те же, что и параметры функции DialogBox: hDlg = CreateDialog(hInst, MAKEINTRESOURCE(IDD_DIALOG2), hWnd,(DLGPROC)IR3);

Отличие состоит в том, что функция CreateDialog сразу возвращает описатель окна диалога. состоит в том, что функция CreateDialog сразу возвращает описатель окна диалога. Как правило, этот описатель хранится в глобальной переменной. Для закрытия немодального окна диалога, вместо функции EndDialog, используется функция DestroyWindow в сообщении WM_CLOSE:

case WM_CLOSE:

DestroyWindow(hDlg);

break;

Окна сообщений являются специальными диалоговыми окнами, отображающие указанными сообщениями. Их предназначение заключается в отображении краткого информационного сообщения. Окно сообщения отображается и создается с помощью функции MessageBox.

Вызов функции выглядит следующим образом:

iItem = MessageBox(hwndParent, szText, szCaption, iType);

Параметром hwndParent является описатель того окна, которое создает окно сообщения. Если окно сообщения закрывается, то фокус ввода оказывается в этом окне. Если описатель окна недоступен, или если не нужно, чтобы фокус ввода получило одно из окон вашего приложения, то вместо этого описателя можно использовать NULL. Если окно сообщений используется внутри окна диалога, то в качестве этого параметра

используйте описатель окна диалога (который мы назвали hDlg).

Параметр szText — это дальний указатель на оканчивающуюся нулем строку, которая отображается внутри окна сообщения. При необходимости Windows разбивает этот текст на несколько строк.

Строка szCaption обычно соответствует имени приложения.

Параметр iType представляет собой набор флагов, связанных с помощью поразрядного оператора OR языка С.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: