Ресурсы. Файл описания ресурса, страница 16

Функция TestDlgProc в файле MAPDLGRT.C

 

См.    \local-sources\chap08\08-16.txt

 

MessageBeep                          • Windows 98   • Windows 2000

 

Описание

Функция MessageBeep воспроизводит звуковой файл через звуковую плату, если в компьютере установлены соответствующие аппаратные средства; в ином случае она воспроизводит звук через динамик компьютера. Имя каждого звукового файла обозначено отдельным входом в разделе [sounds] системного реестра. Применение функции MessageBeep обычно связано с выдачей сообщений об ошибках и предупреждающих сообщений. Эту функцию удобно использовать для выдачи пользователю сообщения о завершении продолжительной фоновой задачи, например передачи большого файла.

 

Синтаксис

BOOL MessageBeep( UINT uType )

 

Параметры uType

UINT. Тип звука, в соответствии с обозначением входа в разделе [sounds] системного реестра. Этот параметр может иметь одно из значений, перс-численных в табл. 8.5.

 

Таблица 8.5. ЗначенияпараметраuType функцииMessageBeep

 

Значение

Звук

 

OxFFFFFFFF I-1)

Стандартный звуковой сигнал, воспроизводимый через динамик компьютера

 

MBJCONASTERISK

SystemAsterisk

 

MBJCONEXCLAMATION

SystemExclamation

 

MBJCONHAND

SystemHand

 

MBJCONQUESTION

SystemQuestion

 

МВ_ОК

SystemDefault

 

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

 

Включаемый файл

winuser.h

 

См. также

MessageBox

 

Пример

См. пример для функции MessageBox.

 

MessageBox                                       • Windows 98   • Windows 2000

 

Описание

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

 

Синтаксис

int MessageBox( HWND hwndOwner, LPCTSTR IpszText, LPCTSTR IpszTitle, UINT uStyle )

 

Параметры

 

hwndOwner

HWND. Дескриптор родительского окна. Если этот параметр равен NULL, окно сообщения не имеет окна-владельца.

 

IpszText

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую сообщение, которое должно быть отображено.

 

IpszTitle

LPCTSTR. Указатель на строку с нулевым символом в конце, используемую в качестве заголовка диалогового окна. Если этот параметр равен NULL, применяется заданный по умолчанию заголовок Error.

 

uStyle

UINT. Определяет содержимое и правило поведения диалогового окна. Этот параметр может представлять собой сочетание значений, перечисленных в табл. 8.6.

 

Таблица 8.6. ЗначенияпараметраuStyle функцииMessageBox

 

Значение

Описание

 

MB_ABORTRETRYIGNORE

Окно сообщения содержит три кнопки: Abort, Retry и Ignore.

 

MB_APPLMODAL

Пользователь должен ответить на сообщение в окне сообщения, прежде чем продолжить работу в окне, указанном параметром hwndOwner. Однако пользователь может переходить в окна других приложений и работать в этих окнах.

 

MB_CANCELTRYCONTINUE

Окно сообщения содержит кнопки Cancel, Try Again и Continue.  Рекомендуется использовать этот флажок вместо MB_ABORTRETRYIGNORE.

 

MB_DEFAULT_DESKTOP_ONLY

(Windows 2000) Рабочий стол, принимающий ввод, должен быть рабочим столом, заданным по умолчанию; в ином случае функция потерпит неудачу. Заданным по умолчанию является рабочий стол, в котором пользователь выполняет приложение после входа в систему.

 

MB_DEFBUTTON1

Первая кнопка — кнопка, применяемая по умолчанию. Применяемой по умолчанию является кнопка, которая будет активизирована, если пользователь нажмет клавишу Enter.

 

MB_DEFBUTTON2

Вторая кнопка — кнопка,  применяемая по умолчанию.

 

MB_DEFBUTTON3

Третья кнопка — кнопка, применяемая по умолчанию..

 

MB_DEFBUTTON4

Четвертая кнопка — кнопка, применяемая по умолчанию.

 

MB_HELP

Добавляет кнопку Help к окну сообщения. При выборе кнопки Help или нажатии клавиши F1  вырабатывается событие вызова справки.

 

MB   ICONASTERISK

То же, что и MBJCONINFORMATION.

 

MBJCONERROR

То же, что и MBJCONSTOP.

 

MBJCONEXCLAMATION

В окне сообщения появляется пиктограмма восклицательного знака.                                                                                                              ;

 

MBJCONHAND

То же, что и MBJCONSTOP.

 

MBJCONINFORMATION

В окне сообщения появляется пиктограмма, которая выглядит как буква нижнего регистра "i" в круге.

 

MBJCONQUESTION

В окне сообщения появляется пиктограмма вопросительного знака.

 

MBJCONSTOP

В окне сообщения появляется пиктограмма знака "стоп".

 

MBJCONWARNING

То же, что и MBJCONEXCLAMATION.

 

MB_OK

Окно сообщения содержит одну кнопку: ОК.

 

MB_OKCANCEL

Окно сообщения содержит две кнопки: ОК и Cancel.

 

MB_RETRYCANCEL

Окно сообщения содержит две кнопки: Retry и Cancel.

 

MB   RIGHT

Текст выровнен вправо.

 

MB_RTLREADING

Отображает сообщение и текст заголовка справа налево в еврейской и арабской системах письменности.

 

MB_SERVICE_NOTIFICATION

(Windows 2000) Вызывающая программа представляет собой службу, извещающую пользователя о событии. Функция отображает окно сообщения на текущем активном рабочем

 

Значение

Описание

 

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

 

MB_SETFOREGROUND

Окно сообщения становится окном переднего плана.  В своих внутренних операциях система Windows вызывает для создания окна сообщения функцию SetForegroundWindow.

 

MB_SYSTEMMODAL

Выполнение всех приложений приостановлено до тех пор,  пока пользователь не ответит на сообщение в окне сообщения.  Если в приложении не указан флажок MB_ICONHAND, окно сообщения станет модальным только после его создания.  Системно-модальные сообщения должны применяться только для серьезных общесистемных сообщений.

 

MBJTASKMODAL

То же, что и MB_APPLMODAL, за исключением того,  что все окна верхнего уровня, принадлежащие к текущей задаче, будут запрещены, если параметр hwndOlvner равен NULL. Этот флажок применяется, когда вызывающее приложение или библиотека не имеют доступного дескриптора окна, но при этом должна быть исключена возможность ввода данных в других окнах текущего приложения и не приостановлена работа других приложений.

 

MB_TOPMOST

Окно сообщения создано со стилем окна WS_EX_TOPMOST.

 

MB_YESNO

Окно сообщения содержит две кнопки: Yes и No

 

MB_YESNOCANCEL

Окно сообщения содержит три кнопки: Yes, No и Cancel.

 

Возвращаемое значение

int. Возвращаемое значение — 0, если недостаточно памяти для создания окна сообщения. В ином случае возвращаемое значение представляет собой одно из значений, перечисленных в табл. 8.7.

 

Таблица 8.7. Значения, возвращаемыефункциейMessageBox

 

Значение

Описание

 

IDABORT

Была нажата кнопка Abort.

 

IDCANCEL

Была нажата кнопка Cancel.

 

IDCONTINUE

Была нажата кнопка Continue.

 

IDIGNORE

Была нажата кнопка Ignore.

 

IDNO

Была нажата кнопка No.

 

IDOK

Была нажата кнопка ОК.

 

IDRETRY

Была нажата кнопка Retry.

 

IDTRYAGAIN

Была нажата кнопка Try Again.

 

IDYES

Была нажата кнопка Yes.

 

Включаемый файл

winuser.h

 

См. также

MessageBoxEx, MessageBoxIndlrect, MessageBeep, DialogBox

 

Пример

В следующем примере отображается окно сообщения при выборе пункта меню Test!. В нем также проверяется, нажата ли кнопка Yes в окне сооб-

 

щения. Перед отображением сообщения воспроизводится звук восклицания с помощью функции MessageBeep.

LRESULT   CALLBACK  WndProc (   HWND  hWnd,   UINT  uMsg,   WPARAM  wParam,   LPARAM  IParam   ) { switch (   uMsg   ) { case   ИМ COMMAND   : switch (   LOWORD(   wParam   )    ) { case   IDM TEST    : MessageBeep (   MB  ICONEXCLAMATION   ); if    (   MessageBox(   hWnd,    "Hello!",   NULL, MB  YESNO    |    MB   ICONEXCLAMATION   )    =   IDYES   ) { / /   Нажата   кнопка   YES . } break;

 

MessageBoxEx                                     • Windows 98   • Windows 2000

 

Описание

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

 

Синтаксис

int MessageBoxEx( HWND hwndOwner, LPCTSTR IpszText, LPCTSTR IpszCaption, UINT uStyle, WORD wLanguagelD )

 

Параметры

 

hwndOwner

HWND. Дескриптор родительского окна. Если этот параметр равен NULL, окно сообщения не имеет окна-владельца.

 

IpszText

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую сообщение, которое должно быть отображено.

 

IpszCaption

LPCTSTR. Указатель на строку с нулевым символом в конце, используемую в качестве заголовка диалогового окна. Если этот параметр равен NULL, применяется заданный по умолчанию заголовок Error.

 

uStyle

UINT. Определяет содержимое и поведение диалогового окна. Этот параметр может представлять собой сочетание значений, перечисленных в табл. 8.6.

 

wLanguagelD

WORD. Указывает язык, на котором должны быть отображены надписи на определенных кнопках. Это значение должно быть представлено в форме, возвращаемой макрокомандой MAKELANGID. Список допустимых языков и диалектов перечислен при описании функции EnumResourceLanguages в главе 7.

 

Возвращаемое значение

int. Возвращаемое значение — 0, если недостаточно памяти для создания окна сообщения. В ином случае возвращаемое значение представляет собой одно из значений, перечисленных в табл. 8.7.

 

Включаемый файл

winuser.h

 

См. также

MessageBox, MessageBoxIndirect

Пример

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

Си.    \local~sources\chap08\08-17. txt

MessaqeBoxIndirect                              • Windows 98   • Windows 2000

Описание

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

Синтаксис

int MessageBoxIndirect( LPMSGBOXPARAMS IpMsgBoxParams )

Параметры

IpMsgBoxParams,

LPMSGBOXPARAMS. Указатель на структуру MSGBOXPARAMS, которая содержит информацию, используемую для отображения и применения окна сообщения. См. приведенное ниже определение структуры MSGBOXPARAMS.

Возвращаемое значение

int. Возвращаемое значение — 0, если недостаточно памяти для создания окна сообщения; в ином случае возвращаемое значение представляет собой одно из значений, перечисленных в табл. 8.7.

Включаемый файл

winuser.h

См. также

MessageBox, MessageBoxEx

Определение MSGBOXPARAMS

typedef   struct { UINT                cbSize; HWND                hwndOwner ; HINSTANCE    hlnstance ; LPCTSTR         IpszText; LPCTSTR         IpszCaption; DWORD              dwStyle; LPCTSTR        Ipszlcon; DWORD  PTR    dwContextHelpId ; MSGBOXCALLBACK   Ipf nMsgBoxCallback ; DWORD              dwLanguageld; }       MSGBOXPARAMS ,    *LPMSGBOXPARAMS ;

Члены

cbSize

UINT. Размер структуры в байтах. Этот параметр должен быть инициализирован перед его использованием в функции MessageBoxIndirect.

hwndOwner

HWND. Окно-владелец окна сообщения. Этот параметр может быть установлен в NULL.

hlnstance

HINSTANCE. Экземпляр, содержащий ресурс пиктограммы, обозначенный членом  Ipszlcon,  и  ресурс  строки,  обозначенный  членами  IpszText и IpszCaption.

IpszText

LPCTSTR. Указатель на строку с нулевым символом в конце или идентификатор ресурса строки, содержащей сообщение, которое должно быть отображено.

 

IpszCaption

LPCTSTR. Указатель на строку с нулевым символом в конце или идентификатор ресурса строки, содержащей заголовок окна сообщения. Если этот член равен NULL, применяется заданный по умолчанию заголовок Error.

 

dwStyle

DWORD. Набор двоичных флажков, которые определяют содержимое и поведение диалогового окна. Этот член может представлять собой сочетание флажков, описанных в табл. 8.6.

 

Ipszlcon

LPCTSTR. Обозначает ресурс пиктограммы. Этот параметр может представлять собой строку с нулевым символом в конце или целочисленный идентификатор ресурса, переданный макрокоманде MAKEINTRESOURCE. Для использования одной из пиктограмм, определенных в Windows, необходимо установить значение hlnstanceв NULL и указать в качестве Ipszlconодно из значений, перечисленных в описании функции Loadlcon.           ,

 

dwContextHelpId

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

 

IpfhMsgBoxCallba

ickMSGBOXCALLBACK. Указатель на функцию обратного вызова, которая обрабатывает события вызова справки для окна сообщения. См. приведенное ниже определение функции обратного вызова. Если этот член устанавливается в NULL, окно сообщения посылает сообщение WM_HELP окну-владельцу, когда происходит вызов справки.

 

dwLanguageld

DWORD. Указывает язык, на котором должны быть отображены надписи на определенных кнопках. Это значение должно быть в форме, возвращенной макрокомандой MAKELANGID. Список допустимых языков и диалектов перечислен в описании функции EmunResourceLanguages в главе 7.

 

Синтаксис обрат

ного вызова

 

VOID CALLBACK MsgBoxCallback( LPHELPINFO IpHetplnfo )

 

Параметры обрат

того вызова

 

IpHelpInfo

LPHELPINFO. Указатель на структуру HELPINFO, которая содержит информацию о происшедшем событии вызова справки. См. определение структуры HELPINFO в главе 28.

 

Пример

В этом примере функция MessageBoxIndirect применяется для отображения окна сообщения с нестандартной пиктограммой и контекстно-зависимой справкой.

 

См.    \local-sources\chap08\08-18. txt

 

SendDlgltemMessage                            • Windows 98   • Windows 2000

 

Описание

Функция SendDlgltemMessage представляет собой сокращенный метод отправки сообщения элементу управления диалоговым окном. Это равносильно вызову функции GetDlgltem для получения дескриптора элемента управления с последующим использованием функции SendMessage для

 

отправки сообщения. Как и SendMessage, функция SendDlgltemMessage отправляет сообщение непосредственно функции диалогового окна, обходя очередь сообщений. Функция SendDlgltemMessage применяется для отправки внеочередных сообщений элементам управления диалогового окна. Такие обычные действия, как смена текста в элементе управления, осуществляются с помощью функции SetDlgltemText. Менее обычные действия, такие как добавление элементов в элемент управления списком, лучше всего выполнять с помощью функции SendDlgltemMessage.

 

Синтаксис

LONG SendDIgItemMessage( HWND hwndDlg, int nIDControl, UINT uMsg, WPARAM wParam, LPARAM IParam )

 

Параметры

 

hwndDlg

HWND. Дескриптор окна диалогового окна (а не дескриптор элемента управления).

 

nIDControl

int. Целочисленный идентификатор элемента управления, который должен принять сообщение.

 

uMsg

UINT. Сообщение, которое должно быть принято элементом управления.

 

wParam

WPARAM. Дополнительная информация, зависящая от сообщения.

 

IParam

LPARAM. Дополнительная информация, зависящая от сообщения.

 

Возвращаемое значение

LONG. Значение, возвращенное после обработки сообщения элементом управления.

 

Включаемый файл

winuser.h

 

См. также

SendMessage, GetDlgltem

 

Соответствующие сообщения

 

С помощью этой функции могут быть отправлены все сообщения.

 

Пример

Следующий  пример  аналогичен  приведенному  в  описании  функции GetDlgCtrllD. Единственное отличие состоит в том, что для установки надписи на кнопке IDCJTHIRD применяется функция SendDlgltemMessage. Результат выполнения этого примера такой же.

 

См.    \local-sources\chap08\08-19. txt

 

SetDlgltemlnt                                       • Windows 98   + Windows 2000

 

Описание

Функция SetDlgltemlnt позволяет установить в качестве текста указанного элемента управления в диалоговом окне строковое представление заданного целого числа.

 

Синтаксис

BOOL SetDlgItemInt( HWND hwndDlg, int nIDControl, UINT uValue, BOOL bSigned )

 

Параметры

 

hwndDlg

HWND. Дескриптор диалогового окна.

 

nIDControl

int. Целочисленный идентификатор элемента управления, в котором должны произойти изменения.

 

и Value

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

 

bSigned

BOOL. TRUE, если параметр uValueпредставляет собой целое число со знаком (int), и FALSE, если этот параметр — целое число без знака.

 

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

 

Включаемый файл

winuser.h

 

См. также

GetDlgltemlnt, SetDlgltemText, GetDlgltemText

 

Соответствующие сообщения

 

WM_SETTEXT

 

Пример

См. пример для функции DialogBox.

 

SetDlgltemText                                    4 Windows 98   * Windows 2000

 

Описание

Функция SetDlgltemText позволяет установить заголовок или текст элемента управления.

 

Синтаксис

BOOL SetDlgItemText( HWND hwndDlg, int nIDControl, LPCTSTR Ipsz )

 

Параметры

 

hwndDlg

HWND. Дескриптор диалогового окна.

 

nIDControl

int. Целочисленный идентификатор элемента управления, в который должны быть внесены изменения.

 

Ipsz

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую текст, который должен быть скопирован в элемент управления. /

 

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE в ином случае возвращаемое значение — FALSE.

 

Включаемый файл

winuser.h

 

См. также

GetDlgltemText, SetDlgltemlnt, GetDlgltemlnt

 

Соответствующие сообщения

 

WM_SETTEXT

 

Пример

См. пример для функции DialogBox.