Zireael |
Отправлено: 25 Декабря, 2019 - 00:54:37
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как изменить шрифт
Изменить шрифт (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
int static0;
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
int h_font = CreateFont(-36, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, "Times New Roman");
static0=CreateWindow(0, "STATIC", "Статик", WS_CHILD | WS_VISIBLE , 10, 10, 150, 40, gethwnd(0), 0, 0, 0);
sendmessage(WM_SETFONT, h_font, 1, formatiw(static0));
}
Цвет не поменять.
В этой теме https://kibor-bot.com/forum/topi...95477#1569695477 есть разные примеры. |
|
|
Zireael |
Отправлено: 25 Декабря, 2019 - 22:59:26
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Edit (Отобразить)CODE:#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define ES_AUTOHSCROLL 128
#define ES_AUTOVSCROLL 64
#define ES_MULTILINE 4
#define ES_WANTRETURN 4096
#define WS_VSCROLL 2097152
#define WS_HSCROLL 1048576
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
int edit;
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
edit=CreateWindow(0, "EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | WS_VSCROLL | WS_HSCROLL |
ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN, 10, 10, 150, 120, gethwnd(0), 0, 0, 0);
} |
|
|
Zireael |
Отправлено: 03 Января, 2020 - 00:58:09
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как в static изменить шрифт и цвет шрифта?
code (Отобразить)CODE:#define SS_OWNERDRAW 13
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define DT_CENTER 1
#define TRANSPARENT 1
#define DT_WORDBREAK 16
#define RUSSIAN_CHARSET 204
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "GetDC", "GetDC", "User32.dll" );
external(INT, "ReleaseDC", "ReleaseDC", "User32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "DrawText", "DrawTextA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
int static0, HDCstatic, FONTstatic;
int pos_size_static[4]={20, 20, 140, 70} // позиция и размеры статика
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 200, 4, 1);
loop()
{
// тут сам скрипт
sleep(10);
}
function getmessage(0, WM_CREATE)
{
static0=CreateWindow(0, "STATIC", "", SS_OWNERDRAW | WS_CHILD | WS_VISIBLE,
pos_size_static[0], pos_size_static[1], pos_size_static[2], pos_size_static[3], gethwnd(0), 0, 0, 0);
HDCstatic=GetDC(static0);
SetBkMode(HDCstatic, TRANSPARENT);
SetTextColor(HDCstatic, 255); // цвет текста
FONTstatic=CreateFont(-20, 0, 0, 0, 0, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Segoe Print"); // -20 размер шрифта, Segoe Print имя
SelectObject(HDCstatic, FONTstatic);
}
function getmessage(0, WM_DRAWITEM)
{
int rect_draw[4]={0, 0, pos_size_static[2], pos_size_static[3]}
DrawText(HDCstatic, "Статичный текст", -1, address(#rect_draw[0]), DT_WORDBREAK | DT_CENTER); // рисуем статик
}
function getmessage(0, WM_CLOSE)
{
// удаление ресурсов
ReleaseDC(gethwnd(0), HDCstatic);
DeleteObject(FONTstatic);
destroydialog(0);
loop() // цикл можно убрать
{
textbkcolor(255, 0);
textout(99, 300, 300, "Остановить скрипт Ctrl + Shift + Z", 1);
sleep(200);
textbkcolor(0, 255);
textout(99, 300, 300, "Остановить скрипт Ctrl + Shift + Z", 1);
sleep(200);
}
} |
|
|
Zireael |
Отправлено: 06 Января, 2020 - 09:11:06
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
ListBox цветной (Отобразить)CODE:#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define LBS_OWNERDRAWVARIABLE 32
#define LB_ADDSTRING 384
#define LB_GETCURSEL 392
#define LB_SETCURSEL 390
#define PS_SOLID 0
#define TRANSPARENT 1
#define LBS_NOTIFY 1
#define SRCCOPY 13369376
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll");
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll");
external(INT, "ReleaseDC", "ReleaseDC", "User32.dll");
external(INT, "DeleteDC", "DeleteDC", "Gdi32.dll");
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "TextOut", "TextOutA", "Gdi32.dll");
external(INT, "BitBlt", "BitBlt", "Gdi32.dll");
external(INT, "GetTextExtentPoint32", "GetTextExtentPoint32A", "Gdi32.dll");
int list;
int HDC_list, Comp, bitmap;
int brush, pen, brush_frame;
int rect[4]={10, 10, 100, 150} // координаты списка
string text_list[5]={"Строка1", "Строка2", "Текст", "111", "22222"} // текст строк
int text_color[5]={255, 5810467, 0, 16000000, 15960251} // цвет строк
int text_w_h[2];
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 4, 1);
loop()
{
textout(0, 0, 0, "Выбранная строка: "+format(sendmessage(LB_GETCURSEL, 0, 0, formatiw(list))), 1);
sleep(10);
}
function getmessage(0, WM_CREATE)
{
list=CreateWindow(0, "LISTBOX", "", LBS_OWNERDRAWVARIABLE | LBS_NOTIFY | WS_CHILD | WS_VISIBLE, rect[0], rect[1], rect[2], rect[3], gethwnd(0), 0, 0, 0);
HDC_list=GetDC(list);
Comp = CreateCompatibleDC(HDC_list);
bitmap =CreateCompatibleBitmap(HDC_list, rect[2], rect[3]);
SelectObject(Comp, bitmap);
brush=CreateSolidBrush(16769968); // цвет фона
pen=CreatePen(PS_SOLID, 1, 16000000); // толщина и цвет рамки
brush_frame=CreateSolidBrush(127482); // цвет выделенной строки списка
SetBkMode(Comp, TRANSPARENT);
char c[99];
for(int i=0; i<sizearray(text_list); i++)
{
strcpy(#c[0], text_list[i]);
sendmessage(LB_ADDSTRING, 0, address(#c[0]), formatiw(list));
}
GetTextExtentPoint32(Comp, address(#c[0]), size(#c[0]), address(#text_w_h[0]));
sendmessage(LB_SETCURSEL, 2, 0, formatiw(list));
}
function getmessage(0, WM_DRAWITEM)
{
SelectObject(Comp, brush);
SelectObject(Comp, pen);
Rectangle(Comp, 0, 0, rect[2], rect[3]);
int cur_item=sendmessage(LB_GETCURSEL, 0, 0, formatiw(list));
if(cur_item != -1)
{
SelectObject(Comp, brush_frame);
Rectangle(Comp, 0, cur_item * text_w_h[1], 100, text_w_h[1] + cur_item * text_w_h[1]);
}
for(int i=0; i<sizearray(text_list); i++)
{
SetTextColor(Comp, text_color[i]);
TextOut(Comp, 5, text_w_h[1] * i, text_list[i], size(text_list[i]));
}
BitBlt(HDC_list, 0, 0, rect[2], rect[3], Comp, 0, 0, SRCCOPY);
}
function getmessage (0, WM_CLOSE)
{
ReleaseDC(gethwnd(0), HDC_list);
DeleteDC(Comp);
DeleteObject(bitmap);
DeleteObject(brush);
DeleteObject(pen);
DeleteObject(brush_frame);
destroydialog(0);
// close(); // закрыть кибор
loop() // цикл можно убрать
{
textbkcolor(255, 0);
textout(99, 300, 300, "Остановить скрипт Ctrl + Shift + Z", 1);
sleep(200);
textbkcolor(0, 255);
textout(99, 300, 300, "Остановить скрипт Ctrl + Shift + Z", 1);
sleep(200);
}
} |
|
|
Zireael |
Отправлено: 09 Января, 2020 - 08:42:02
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цветная кнопка (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define TRANSPARENT 1
#define BS_OWNERDRAW 11
#define DT_SINGLELINE 32
#define DT_VCENTER 4
#define DT_CENTER 1
#define SRCCOPY 13369376
#define PS_SOLID 0
#define RUSSIAN_CHARSET 204
#define BM_GETSTATE 242
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "ReleaseDC", "ReleaseDC", "User32.dll");
external(INT, "DeleteDC", "DeleteDC", "Gdi32.dll");
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "DrawText", "DrawTextA", "User32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "BitBlt", "BitBlt", "Gdi32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll");
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
///// параметры кнопки
int param_button[4]={16701839, 4727553, 255, -12} // цвет фона, цвет рамки, цвет текста, размер шрифта
string text_button[2]={"Кнопка", "Arial"} // текст кнопки и шрифт
int pos_size_button[4]={30, 20, 80, 24} // позиция и размеры кнопки по X и Y
int flag_button=0; // флаг нажатия кнопки
int HDC_button[4]; // хендл кнопки и дескрипторы для рисования
createdialog(0);
showdialog(0, "Dialog",300, 300, 300, 250, 4, 1);
enabletimer(0);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
// создать кнопку
HDC_button[0]=CreateWindow(0, "BUTTON", "", WS_VISIBLE | WS_CHILD | BS_OWNERDRAW,
pos_size_button[0], pos_size_button[1], pos_size_button[2], pos_size_button[3], gethwnd(0), 0, 0, 0);
HDC_button[1] = GetDC(HDC_button[0]);
HDC_button[2] = CreateCompatibleDC(HDC_button[1]);
HDC_button[3] = CreateCompatibleBitmap(HDC_button[1], pos_size_button[2], pos_size_button[3]);
param_button[0] = CreateSolidBrush(param_button[0]);
param_button[1] = CreatePen(PS_SOLID, 2, param_button[1]);
param_button[3] = CreateFont(param_button[3], 0, 0, 0, 0, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, text_button[1]);
SelectObject(HDC_button[2], HDC_button[3]);
SetBkMode(HDC_button[2], TRANSPARENT);
SelectObject(HDC_button[2], param_button[0]);
SelectObject(HDC_button[2], param_button[1]);
SetTextColor(HDC_button[2], param_button[2]);
SelectObject(HDC_button[2], param_button[3]);
}
function paint_button()
{
int rect_draw[4]={0, 0, pos_size_button[2], pos_size_button[3]}
if(sendmessage(BM_GETSTATE, 0, 0, formatiw(HDC_button[0])) == 108) // если кнопка нажата
{
rect_draw[0]=1; rect_draw[1]=1; rect_draw[2]=pos_size_button[2]+1; rect_draw[3]=pos_size_button[3]+1;
}
Rectangle(HDC_button[2], rect_draw[0], rect_draw[1], rect_draw[2], rect_draw[3]);
DrawText(HDC_button[2], text_button[0], -1, address(#rect_draw[0]), DT_SINGLELINE | DT_VCENTER | DT_CENTER);
BitBlt(HDC_button[1], 0, 0, pos_size_button[2], pos_size_button[3], HDC_button[2], 0, 0, SRCCOPY);
}
CREATE_TIMER(0, 30)
{
paint_button(); // рисование кнопки
if(flag_button) // если кнопка нажата
{
flag_button=0;
messagebox("Нажата кнопка");
}
}
function getmessage (0, WM_CLOSE)
{
delete_object();
destroydialog(0);
loop() // цикл можно убрать
{
textbkcolor(255, 0);
textout(99, 300, 300, "Остановить скрипт Ctrl + Shift + Z", 1);
sleep(200);
textbkcolor(0, 255);
textout(99, 300, 300, "Остановить скрипт Ctrl + Shift + Z", 1);
sleep(200);
}
}
function delete_object()
{
// удаление ресурсов
ReleaseDC(gethwnd(0), HDC_button[1]);
DeleteDC(HDC_button[2]);
DeleteObject(HDC_button[3]);
DeleteObject(param_button[0]);
DeleteObject(param_button[1]);
DeleteObject(param_button[3]);
}
function getmessage (0, WM_COMMAND)
{
// обработка нажатий
if(message.lparam == HDC_button[0])
{
flag_button=1;
return;
}
} |
|
|
|