На главную

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 | Скачать Вниз

Creating a Modal Dialog Box



You create a modal dialog box by using the DialogBox function. You must specify the identifier or name of a dialog box template resource and the address of the dialog box procedure. The DialogBox function loads the template, displays the dialog box, and processes all user input until the user closes the dialog box.

In the following example, the application displays a modal dialog box when the user chooses a Delete Item command from an application menu. The dialog box contains an edit control (in which the user enters the name of an item) and OK and Cancel buttons. The control identifiers for these controls are ID_ITEMNAME, IDOK, and IDCANCEL, respectively.
The first part of the example consists of the statements that create the modal dialog box. These statements, in the window procedure for the application's main window, create the dialog box when the system receives a WM_COMMAND message having the IDM_DELETEITEM command identifier. The second part of the example is the dialog box procedure, which retrieves the contents of the edit control and closes the dialog box upon receiving a WM_COMMAND message.

The following statements create the modal dialog box. The dialog box template is a resource in the application's executable file and has the resource identifier DLG_DELETEITEM:

case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDM_DELETEITEM:
if (DialogBox(hinst,
MAKEINTRESOURCE(DLG_DELETEITEM),
hwnd, (DLGPROC)DeleteItemProc)==IDOK)

.
. // Complete the command; szItemName
. // contains the name of the item to
. // delete.
.


else
.
. // Cancel the command.
.

break;
}
return 0L;


In this example, the application identifies its main window as the owner window for the dialog box. When Windows initially displays the dialog box, its position is relative to the upper left corner of the owner window's client area. The application uses the return value from DialogBox to determine whether to proceed with the command or cancel it. The following statements define the dialog box procedure.

char szItemName[80]; // receives name of item to delete.

BOOL CALLBACK DeleteItemProc(hwndDlg, message, wParam, lParam)
HWND hwndDlg;
UINT message;
WPARAM wParam;
LPARAM lParam;
{
switch (message) {
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
if (!GetDlgItemText(hwndDlg, ID_ITEMNAME,
szItemName, 80))
*szItemName=0;

// Fall through.


case IDCANCEL:
EndDialog(hwndDlg, wParam);
return TRUE;
}
}
return FALSE;
}


In this example, the procedure uses GetDlgItemText to retrieve the current text from the edit control identified by ID_ITEMNAME. The procedure then calls the EndDialog function to set the dialog box's return value to either IDOK or IDCANCEL, depending on the message received, and to begin the process of closing the dialog box. The IDOK and IDCANCEL identifiers correspond to the OK and Cancel buttons. After the procedure calls EndDialog, Windows sends additional messages to the procedure to destroy the dialog box and returns the dialog box's return value back to the function that created the dialog box.


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

Создание Модального Диалогового Ящика



Вы создаете модальный диалоговый ящик используя функцию DialogBox. Вы должны определить идентификатор или имя ресурса шаблона диалогового ящика и адрес диалоговой процедуры ящика. Функция DialogBox загружает шаблон, отображает диалоговый ящик и обрабатывает весь ввод пользователя пока потребитель не закроет диалоговый ящик.

В следующем примере, приложение отображает модального диалогового блока когда пользователь выбирает команду Пункта Delete из прикладного меню. Диалоговый блок содержит управление редактирования (в котором пользователь вводит имя пункта) и OK и кнопки Отмены. Управляющие идентификаторы для этих элементов управления - ID_ITEMNAME, IDOK, и IDCANCEL, соответственно.
Первая часть примера состоит из утверждений, которые создают модального диалогового блока. Эти утверждения, в процедуре окна для прикладного основного окна, создают диалогового блока когда система получает сообщение WM_COMMAND, имеющее командный идентификатор IDM_DELETEITEM. Вторая часть примера является диалоговым блоком процедуры, который извлекает содержание управления редактирования и закрывает диалогового блока на получающем сообщение WM_COMMAND.

Следующие утверждения создают модального диалогового блока. Диалоговый шаблон блока является ресурсом в прикладном выполняемом файле и имеет идентификатор ресурса DLG_DELETEITEM:

случай WM_COMMAND: ключ (LOWORD(wParam)) { случай IDM_DELETEITEM: если (DialogBox(hinst, MAKEINTRESOURCE(DLG_DELETEITEM), hwnd, (DLGPROC)DeleteItemProc)==IDOK)

.
. // Полный команда; szItemName . // СОДЕРЖИТ имя пункта на . // удаляться.
.


еще
.
. // Отмена команда.
.

прерывание;
}
возвращайте 0L;


В этом примере, приложение идентифицирует свое основное окно как окно владельца для диалогового блока. Когда Windows первоначально отображает диалогового блока, позиция - относительно верхнего левого угла области клиента окна владельца. Приложение использует обратную величину из DialogBox, чтобы определять приступать к команде или отменять это. Следующие утверждения определяют диалогового блока процедуры.

символ szItemName[80]; // имя приемников пункта, чтобы удаляться.

BOOL CALLBACK DeleteItemProc(hwndDlg, сообщение, wParam, lParam) HWND hwndDlg;
СООБЩЕНИЕ UINT;
WPARAM wParam;
LPARAM lParam;
{
ключ (сообщение) { случай WM_COMMAND: ключ (LOWORD(wParam)) { случай IDOK:
если (!GetDlgItemText(hwndDlg, ID_ITEMNAME, szItemName, 80)) *szItemName=0;

// Провалите.


случай IDCANCEL: EndDialog(hwndDlg, wParam);
возвращайтесь ВЕРНО;
}
}
обратная ЛОЖЬ;
}


В этом примере, процедура использует GetDlgItemText, чтобы извлекать текущий текст с управления редактирования идентифицированного ID_ITEMNAME. Процедура затем вызывает функцию EndDialog, чтобы устанавливать обратную величину диалогового блока на или IDOK или IDCANCEL, в зависимости от сообщения полученного, и, чтобы начинать процесс закрытия диалогового блока. IDOK И идентификаторы IDCANCEL переписываются на OK и Отменяют кнопки. После того, как процедура вызовет EndDialog, Windows посылает дополнительные сообщения в процедуру, чтобы уничтожать диалогового блока и возвращать обратную величину диалогового блока в функцию, которая создавала диалогового блока.


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