int WINAPI Message( int PluginNumber, DWORD Flags, const char *HelpTopic, const char * const *Items, int ItemsNumber, int ButtonsNumber );
| Флаг | Описание |
|---|---|
| FMSG_WARNING | Используются цвета "Предупреждения" (обычно белые буквы на красном фоне). |
| FMSG_ERRORTYPE | Если тип ошибки, возвращаемый функцией GetLastError , известен FAR'у или Windows, то описание ошибки будет показано в первых строках сообщения. При этом строки, переданные плагином в функцию, сдвинутся вниз. |
| FMSG_KEEPBACKGROUND | Не перерисовывать фон сообщения. |
| FMSG_DOWN | Показать сообщение двумя строками ниже. |
| FMSG_LEFTALIGN | Использовать для строк сообщения выравнивание влево (по умолчанию строки выводятся по центру). |
| FMSG_ALLINONE |
В этом случае параметра Items не является массивом
указателей на строки - это УКАЗАТЕЛЬ на одну
строку, в которой разделителем выводимых строк является
символ '\n'.
Минимальное количество строк - 2 - заголовок и одна строка сообщения. При указании флага FMSG_ALLINONE параметр ItemsNumber игнорируется и количество выводимых строк вычисляется автоматически (с учетом флагов-кнопок FMSG_MB_*). Для подавления вывода заголовка при использовании флага FMSG_ALLINONE
начните строку с символа |
| FMSG_MB_OK | Дополнительно выводится кнопка <Ok> |
| FMSG_MB_OKCANCEL | Дополнительно выводятся кнопки <Ok> и <Cancel> |
| FMSG_MB_ABORTRETRYIGNORE | Дополнительно выводятся кнопки <Abort>, <Retry> и <Ignore> |
| FMSG_MB_YESNO | Дополнительно выводятся кнопки <Yes> и <No> |
| FMSG_MB_YESNOCANCEL | Дополнительно выводятся кнопки <Yes>, <No> и <Cancel> |
| FMSG_MB_RETRYCANCEL | Дополнительно выводятся кнопки <Retry> и <Cancel> |
NULL если подсказка не
требуется.
NULL или
количество элементов меньше двух.
Info.Message(Info.ModuleNumber, FMSG_ALLINONE|FMSG_MB_OKCANCEL, "HelpTopic", (const char * const *)"Title\nItem1\nItem2\nItem3", 0,0);или const char *Msg="Title\nItem1\nItem2\nItem3\nOk\nCancel"; Info.Message(Info.ModuleNumber, FMSG_ALLINONE, "HelpTopic", (const char * const *)Msg, 0,2); |
![]() |
BOOL IsDeleted(char *filename)
{
const char *Msg[5];
Msg[0]=GetMsg(MTitle); // заголовок сообщения
Msg[1]=GetMsg(MIsDeleted); // тело сообщения
Msg[2]=filename;
Msg[3]=GetMsg(MDelete); // последние ButtonsNumber (2) строк - кнопки
Msg[4]=GetMsg(MCancel);
return Info.Message(Info.ModuleNumber,
0,
"DeleteFile",
Msg,
sizeof(Msg)/sizeof(Msg[0]),
2) == 0;
}
Причем, Info определяется как глобальная переменная:
struct PluginStartupInfo Info;...а инициализируется она в функции SetStartupInfo:
void WINAPI _export SetStartupInfo(struct PluginStartupInfo *Info)
{
...
::Info=*Info;
...
}