Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 96


При обработке того же сообщения мы встречаем еще одну функцию, позволяющую установить отметку у элемента меню, - CheckMenultemQ. Эта функция позволяет изменять состояние только одного элемента меню. С помощью этой функции мы будем устанавливать и отображать состояние CheckButtons.

112

Наверное, читателю небезынтересно узнать, что эти две функции для отметки элементов по умолчанию используют различные значки. Реко­мендую читателю обратить внимание на то, какие значки используются для отметки в обеих функциях.

Но эта программа написана отнюдь не для того, чтобы рассказывать о новых возможностях меню. При обработке сообщения от элемента меню с надписью «Display Dialog» создается диалоговое окно, в котором и содержатся те кнопки, о которых мы говорили. В зависимости от того, какое диалоговое окно должно быть создано, могут быть использованы функции DialogBox() и CreateDialogQ. Функция DialogBoxQ создает модальное диалоговое окно. Немодальное диалоговое окно создается с помощью функции CreateDialogQ. Мы используем функцию DialogBoxQ.

В файле winuser.h эта функция описана следующим образом:

WINUSERAPI int WINAPI DialogBoxParamA(HINSTANCE hlnstance,

LPCSTR IpTcmplateName, HWND hWndParent, DLGPROC IpDialogFunc, LPARAM dwInitParam); WINUSERAPI int WINAPI DialogBoxParamW(HINSTANCE hlnstance,

LPCWSTR IpTemplatcName, HWND hWndParent, DLGPROC IpDialogFunc, LPARAM dwInitParam);

#ifdef UNICODE

#define DialogBoxParam DialogBoxParamW

#elsc

#dcfine DialogBoxParam DialogBoxParamA

#endif// IUNICODE

#dcfine DialogBoxA(hInstance, IpTemplatc, hWndParent, IpDialogFunc) \

DialogBoxParamA(hInslance, IpTemplate, hWndParent, IpDialogFunc, OL)

//define DialogBoxW(hInstance, IpTemplate, hWndParent, IpDialogFunc) \

DialogBoxParamW(hInstance, IpTemplate, hWndParent, IpDialogFunc, OL)

//ifdef UNICODE

//define DialogBox DialogBoxW

//else

//define DialogBox DialogBoxA

#endif // IUNICODE

Видно, что функция DialogBoxQ фактически является частным случаем функции DialogBoxParamQ. На их различии мы остановимся чуть позже, а сейчас рассмотрим аргументы DialogBoxQ.




Начало  Назад  Вперед



Книжный магазин