ALTE DOCUMENTE
|
||||||
MessageBox
Окно сообщения - это самый простой элеме 21421s1814v 85;т интерфейса. Оно отображает некоторое сообщение и ожидает реакции пользователя. Можно создавать окна сообщений, предусматривающие несколько вариантов действий пользователя, но, вообще говоря, целью окна сообщения является просто информирование пользователя о свершении некоторого события.
Для создания окна сообщения следует использовать функцию API MessageBox()
int MessageBox(HWND hwnd,
LPCSTR lpText, LPCSTR lpCaption,
UINT wMBType);
hwnd lpText lpCaption wMBType является комбинацией значений, которые определяют свойства окна сообщения, включающие типы «кнопок», которые должны присутствовать, и дополнительную иконку рядом с текстом сообщения. Эти макросы определены в файле windows.h. Необходимый набор свойств можно получить объединив эти значения при помощи логического сложения. Функция MessageBox() возвращает значение, соответствующее действию пользователя. Соответствующие кнопки могут присутствовать в зависимости от значения wMBType. В таблице 4.1 приведены возможные возвращаемые значения этой функции.
Значения функции MessageBox
Abort |
IDABORT |
|
Retry |
IDRETRY |
|
Ignore |
IDIGNORE |
|
Cancel |
IDCANCEL |
|
No |
IDNO |
|
Yes |
IDYES |
|
OK |
IDOK |
MessageBox(), Windows отобразит окно сообщения при первой же возможности. При этом не нужно получать контексты устройств или обрабатывать какие-либо сообщения. В данном случае Windows делает все это самостоятельно. (Простота использования делает окна сообщений прекрасным средством отладки, когда необходимо просто и быстро вывести что-либо на экран.) Некоторые значения, которые могут быть использованы для wMBType
Значения wMBType
МB_ABORTRETRYIGNORE |
Отображение кнопок Abort, Retry, и Ignore |
|
MB_ICONEXCLAMATION | ||
MB_ICONHAND | ||
MB_ICONINFORMATION | ||
MB_ICONQUESTION | ||
MB_ICONSTOP |
MB_ICONHAND |
|
MB_OK | ||
MB_OKCANCEL |
Отображаются кнопки ОК и Cancel |
|
MB_RETRYCANCEL |
Отображаются кнопки Retry и Cancel |
|
MB_YESNO |
Отображаются кнопки Yes и No |
|
MB_YESNOCANCEL |
Отображается кнопка Yes |
#include <Windows.h>
#include <String.h>
#include <Stdio.h>
LRESULT CALLBACK WindowFunc(HWND, UINT,
WPARAM, LPARAM);
char szWinName[]=" "; //
int WINAPI WinMain(HINSTANCE hThisInst,
HINSTANCE hPrevInst,
LPSTR lpszArgs,
int nWinMode)
return msg.wParam;
}
// системой Windows и получает в качестве
LRESULT CALLBACK WindowFunc(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
break;
case WM_LBUTTONDOWN: //
response = MessageBox(hwnd,
" ?",
" ",
MB_ICONHAND | MB_YESNO);
switch(response)
break;
case WM_DESTROY: //
PostQuitMessage(0);
break;
default:
// Все сообщения, не обрабатываемые в
// данной функции, направляются на обработку
// по умолчанию
return DefWindowProc(hwnd,message,
wParam,lParam);
return 0;
}
щения. Например, при нажатии правой кнопки появится окно как на рис. 4.1. Как видите, в окне сообщения присутствуют кнопки Abort (Прервать), Retry (Повтор) и Ignore (Пропустить). При нажатии любой из них появится второе окно сообщения, показывающее, какая из кнопок была нажата. Нажатие левой кнопки мыши приведет к появлению окна сообщения с кнопками Yes, No и иконкой «знак Стоп».
|