На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Modeless Dialog Boxes



A modeless dialog box should be a pop-up window having a System menu, a title bar, and a thin border; that is, the dialog box template should specify the WS_POPUP, WS_CAPTION, WS_BORDER, and WS_SYSMENU styles. Windows does not automatically display the dialog box unless the template specifies the WS_VISIBLE style.

An application creates a modeless dialog box by using the CreateDialog or CreateDialogIndirect function. CreateDialog requires the name or identifier of a resource containing a dialog box template; CreateDialogIndirect requires the handle of a memory object containing a dialog box template. Two other functions, CreateDialogParam and CreateDialogIndirectParam, also create modeless dialog boxes; they pass a specified parameter to the dialog box procedure when the dialog box is created.

CreateDialog and other creation functions return a window handle for the dialog box. The application and the dialog box procedure can use this handle to manage the dialog box. For example, if WS_VISIBLE is not specified in the dialog box template, the application can display the dialog box by passing the window handle to the ShowWindow function.
A modeless dialog box neither disables the owner window nor sends messages to it. When creating the dialog box, Windows makes it the active window, but the user or the application can change the active window at any time. If the dialog box does become inactive, it remains above the owner window in the Z order, even if the owner window is active.

The application is responsible for retrieving and dispatching input messages to the dialog box. Most applications use the main message loop for this. To permit the user to move to and select controls by using the keyboard, however, the application must call the IsDialogMessage function. For more information about this function, see Dialog Box Keyboard Interface.
A modeless dialog box cannot return a value to the application as a modal dialog box does, but the dialog box procedure can send information to the owner window by using the SendMessage function.

An application must destroy all modeless dialog boxes before terminating. It can destroy a modeless dialog box by using the DestroyWindow function. In most cases, the dialog box procedure calls DestroyWindow in response to user input, such as choosing the Cancel button. If the user never closes the dialog box in this way, the application must call DestroyWindow.
DestroyWindow invalidates the window handle for the dialog box, so any subsequent calls to functions that use the handle return error values. To prevent errors, the dialog box procedure should notify the owner that the dialog box has been destroyed. Many applications maintain a global variable containing the handle for the dialog box. When the dialog box procedure destroys the dialog box, it also sets the global variable to NULL, indicating that the dialog box is no longer valid.

The dialog box procedure must not call the EndDialog function to destroy a modeless dialog box.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Независимые Диалоговые Ящики



Независимый диалоговый блок должен быть управляющим окном, имеющим меню Системы, зона названия, и тонкую границу; то есть, диалоговый шаблон блока должен определить WS_POPUP, WS_CAPTION, WS_BORDER, и стили WS_SYSMENU. Windows автоматически не отображает диалогового блока если шаблон не определяет стиль WS_VISIBLE.

Приложение создает независимого диалогового блока используя CreateDialog или функция CreateDialogIndirect. CreateDialog ТРЕБУЕТ имя или идентификатор ресурса, содержащие диалоговый шаблон блока; CreateDialogIndirect ТРЕБУЕТ ручку объекта памяти, содержащей диалоговый шаблон блока. Две других функции, CreateDialogParam и CreateDialogIndirectParam, также создают независимых диалоговых блоков; они передают определенный параметр диалоговому блоку процедуры когда диалоговый блок создан.

CreateDialog И другой возврат функций создания ручка окна для диалогового блока. Приложение и диалог боксируют процедуру может использовать эту ручку, чтобы управлять диалоговым блоком. Например, если WS_VISIBLE не определен в диалоговом шаблоне блока, приложение может отобразить диалогового блока передавая ручку окна в функцию ShowWindow.
Независимый диалоговый блок ни не выводит из строя окно владельца ни посылает сообщения этому. При создании диалогового блока, Windows делает это активное окно, но пользователь или приложение может изменить активное окно в любое время. Если диалоговый блок делает становиться неактивным, он остается выше окна владельца в порядке Z, даже если бы окно владельца активно.

Приложение ответственное за поиск и входные сообщения отправки диалоговому блоку. Большинство приложений используют основной цикл сообщения для этого. Для того, чтобы разрешать пользователя, чтобы перемещать на и выбираться элементы управления используя клавиатуру, тем не менее, приложение должно вызвать функцию IsDialogMessage. Более подробно об этой функции, видьте как Диалог Боксировал Клавишный Интерфейс.
Независимый диалоговый блок не может возвращать величину в приложение так как модальный диалоговый блок делает, но диалоговый блок процедуры может послать информацию в окно владельца используя функцию SendMessage.

Приложение должно уничтожить всех независимых диалоговых блоков перед завершением. Это может уничтожить независимого диалогового блока используя функцию DestroyWindow. В большинстве случаев, диалоговый блок процедуры вызывает DestroyWindow в ответ на ввод пользователя, как например, выбор кнопки Отмены. Если пользователь никогда закрытия диалоговый блок таким образом, приложение должно вызвать DestroyWindow.
DestroyWindow АННУЛИРУЕТ ручку окна для диалогового блока, так что любые последующие вызовы в функции, которые используют величины обратной ошибки ручки. Для того, чтобы предохранять ошибки, диалоговый блок процедуры должен уведомить владельца, что диалоговый блок уничтожен. Много приложений поддерживают глобальную переменную, содержащую ручку для диалогового блока. Когда диалоговый блок процедуры уничтожает диалогового блока, он также устанавливает глобальную переменную на НЕДЕЙСТВИТЕЛЬНЫЙ, указывая, что диалоговый блок больше правильный.

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


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz