Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Можно и так:
MessageBox (Отобразить)CODE:+HIDE0>#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WM_SETFONT 0x0030
#define TRUE 1
#define SS_CENTER 0x01
#define DT_CALCRECT 0x00000400
external(INT, "DrawText", "DrawTextA", "User32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "MoveWindow", "MoveWindow", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll");
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
int buttonOK, static;
int flag_button=0;
int h_font, h_font_button, hdc;
createdialog(2);/HIDE0>
// в нужном месте скрипта вызвать функцию
_messagebox("Сообщение");
_messagebox("Другое сообщение");
_messagebox("Сообщение в несколько строк^nСообщение в^nнесколько строк");
+HIDE1>// вызов функции при создании окна
function getmessage(2, WM_CREATE)
{
hdc = GetDC(gethwnd(2));
h_font = CreateFont(-20, 0, 0, 0, 600, 0, 0, 0, 0, 0, 0, 0, 0, "Courier"); // создать шрифт (обязтельно моноширинный)
SelectObject(hdc, h_font);
h_font_button = CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, "Arial"); // создать шрифт для кнопки OK
buttonOK=CreateWindow(0, "BUTTON", "OK", WS_CHILD | WS_VISIBLE , 0, 0, 0, 0, gethwnd(2), 0, 0, 0); // создать кнопку
static=CreateWindow(0, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_CENTER, 0, 0, 0, 0, gethwnd(2), 0, 0, 0);
sendmessage(WM_SETFONT, h_font, TRUE, formatiw(static)); // установить шрифт
sendmessage(WM_SETFONT, h_font_button, TRUE, formatiw(buttonOK));
}
// обработка сообщений
function getmessage(2, WM_COMMAND)
{
if(message.lparam==buttonOK) // если нажата кнопка
{
hidedialog(2);
flag_button=1;
return;
}
}
function _messagebox(string message)
{
int rect[4];
initialarray(#rect[0], 0);
flag_button=0;
DrawText(hdc, message, -1, address(#rect[0]), DT_CALCRECT);
MoveWindow (static, 10, 10, rect[2], rect[3]);
MoveWindow (buttonOK, rect[2]-60, rect[3]+ 20, 70, 24);
SetWindowText(static, message);
int c_monitor, w_monitor, h_monitor;
getdisplay(c_monitor, w_monitor, h_monitor);
int sizeDialogX = rect[2]+30;
int sizeDialogY = rect[3]+80;
int PosDialogX = w_monitor / 2 - sizeDialogX / 2;
int PosDialogY = h_monitor / 2 - sizeDialogY / 2;
showdialog(2, "Kibor", PosDialogX, PosDialogY, sizeDialogX, sizeDialogY, 1, 1);
while(flag_button==0)sleep(10);
}/HIDE1>
Всё что нужно можно добавить/изменить. |