НА ГЛАВНУЮ

Форматирование строк и окна сообщений

Эта группа содержит три глобальные функции: две для работы со строками и одну для вывода произвольного сообщения в блок диалога.

void AfxFormatStringl(

CStrings rString,

UINT nIDS, 

LPCTSTR Ipsz)

Загружает строку из ресурсов, определяемую идентификатором nIDS, в объект rString с одновременной заменой шаблона "%1" на строку, указанную в Ipsz. Например, если в ресурсах определена строка "Для профессионального программирования 32-разрядных приложений — читайте книгу %1", a Ipsz указывает на строку "<Программирование на Visual C++ 6.0>", то после выполнения этой функции rString будет содержать строку "Для профессионального программирования 32-разрядных приложений — читайте книгу программирование на Visual C++ 6.0>".

void AfxFormatString2(

CString& rString, 

UINT nIDS, LPCTSTR Ipszl,

LPCTSTR Ipsz2)

Аналогична функции AfxFormatStringl, но используется два шаблона ("%1" и "%2") и две строки для подстановки, соответственно.

Последняя функция этой группы имеет две формы: со строкой текста и с идентификатором ресурса:

int AfxMessageBox

LPCTSTR IpszText, 

UINT nType = MB_OK, 

UINT nIDHelp =0)

 И

int AfxMessageBox

UINT nIDPrompt, 

UINT nType = MB_OK, 

UINT nIDHelp = (UINT) -1)

Выводит текст в окно сообщений. Первая форма этой функции выводит в окно сообщений строку IpszText и использует идентификатор nIDHelp для перехода к соответствующей теме справки при нажатии клавиши <F1>. Вторая форма функции использует для определения текста идентификатор строки ресурса, задаваемый параметром nIDPrompt. Если в качестве nIDHelp используется значение по умолчанию, равное -1, то nIDPrompt задает тему справки.

 Обе функции возвращают одно из следующих значений:

  • IDABORT — нажата кнопка Abort
  • IDCANCEL — нажата кнопка Cancel или нажата клавиша <Esc>
  • IDIGNORE — нажата кнопка Ignore
  • IDNO — нажата кнопка No
  • IDOK — нажата кнопка ОК
  • IDRETRY — нажата кнопка Retry
  • IDYES — нажата кнопка Yes 
  • О — окно сообщений не может быть создано.

Параметр пТуре определяет тип окна сообщений и может принимать одно из следующих значений:

 MB_ABORTRETRYIGNORE — содержит три кнопки Abort, Retry и Ignore (Стоп, Повтор и Пропустить)

 MBJDK — содержит только кнопку ОК

 MB_OKCANCEL — содержит две кнопки ОК и Cancel (OK и Отмена)

 MB_RETRYCANCEL — содержит две кнопки Retry и Cancel (Повтор и Отмена)

 MB_YESNO — содержит две кнопки Yes и No (Да и Нет)

 MB_YESNOCANCEL — содержит три кнопки Yes, No и Cancel (Да, Нет и Отмена)

Кроме того, можно использовать следующие константы для определения степени модальности окна сообщений:

  • MB_APPLMODAL — модальность на уровне пользователя  
  • MB_SYSTEMMODAL — модальность на уровне системы
  • MB_TASKMODAL — модальность на уровне процесса

 Примечание 

В скобках приведены названия для русскоязычной версии системы Windows.

Помимо кнопок, в окне сообщений можно разместить одну из предопределенных (системных) пиктограмм (рис. 1.1 — 1.4).

Рис. 1.1. MB_ICONEXCLAMATION— восклицательный знак

Рис. 1.2. MB_ICONINFORMATION— пиктограммы в виде символа "i"

Рис. 1.3. MB_ICONQUESTION— знак вопроса

Рис. 1.4. MB_ICONSTOP — пиктограмма "стоп"

При использовании в блоке сообщений более одной кнопки можно также установить кнопку по умолчанию:

  •  MB_DEFBUTTONl — по умолчанию первая кнопка 
  •  MB_DEFBUTTON2 — по умолчанию вторая кнопка 
  •  MB_DEFBUTTON3 — по умолчанию третья кнопка А теперь переходим собственно к структуре библиотеки MFC.


 

© webdestination 2007