MB_ICONWARNING Предупреждение (знак «!») MB_ICONINFORMATION Информация (буква «i») MB_ICONQUEST I ON Вопрос (знак «?») MB_ICONSTOP Остановка (стоп-знак)
Например, чтобы показать диалоговое окно с кнопками Да и Нет и значком Вопрос, в качестве третьего параметра надо использовать выражение
MB_YESNO I MB_ICONQUESTION
Функция MessageBoxQ возвращает либо значение 0 (показать диалоговое окно не удалось), либо одно из семи значений, которые определяют, на какой из кнопок диалогового окна произошел щелчок.
|
IDOK |
;". нажата ОК |
|
IDCANCEL |
нажата «Отменить» |
|
IDABORT |
нажата «Стоп» |
|
IDRETRY |
нажата «Повтор» |
|
IDIGNORE |
нажата «Пропустить» |
|
IDYES |
нажата «Да» |
|
IDNO |
нажата «Нет» |
К сожалению, нельзя в качестве первых двух параметров MessageBoxQ использовать константы описанного в C++Builder типа AnsiString. Дело в том, что MessageBoxQ — это стандартная функция Windows, а не C++Builder, и она требует параметров другого, базового типа char.
Строка в Windows представляет собой последовательность символов, кончающихся символом с кодом 0. Каждый такой символ имеет тип char и занимает один байт. Чтобы передать в MessageBoxQ значение типа AnsiString, приведенное к типу char (точнее, к указателю на последовательность символов в памяти — «char *»), надо воспользоваться методом класса AnsiString, который называется c_str().
Методы классов можно применять к любым данным соответствующих типов — не только к переменным, но и ко константам. -
Например, если строка «абвгд» описана как константа типа const AnsiString STR = "абвгд";
230