Zireael |
Отправлено: 23 Октября, 2020 - 03:17:21
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
code (Отобразить)CODE:// включить визуальный стиль
#define ACTCTX_FLAG_RESOURCe_NAME_VALID 0x008
#define ACTCTX_FLAG_SET_PROCESS_DEFAULT 0x010
#define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID 0x004
external(INT, "CreateActCtx", "CreateActCtxA", "Kernel32.dll");
external(INT, "GetSystemDirectory", "GetSystemDirectoryA", "Kernel32.dll");
EnableVisualStyles();
function EnableVisualStyles()
{
int Cookie=0;
char Directory[260], Source[260];
strcpy(#Source[0], "shell32.dll");
GetSystemDirectory(address(#Directory[0]), sizearray(Directory));
int ACTCTX[8] = {32, ACTCTX_FLAG_RESOURCe_NAME_VALID | ACTCTX_FLAG_SET_PROCESS_DEFAULT | ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID,
address(#Source[0]), 0, address(#Directory[0]), 124, 0, 0};
CreateActCtx(address(#ACTCTX[0]));
}
//////////////
// для примера создание диалогового окна с контролами
#define CP_ACP 0
#define FALSE 0
#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define BS_AUTOCHECKBOX 3
#define EM_SETCUEBANNER 0x1501
#define EM_SETPASSWORDCHAR 0xCC
#define LWS_USEVISUALSTYLE 8
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "MultiByteToWideChar", "MultiByteToWideChar", "Kernel32.dll");
int b0, check0, edit0, edit1, link0;
createdialog(0);
showdialog(0, "Dialog", 200, 200, 250, 300, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
b0=CreateWindow(0, "BUTTON", "Button0", WS_CHILD | WS_VISIBLE, 20, 20, 100, 25, gethwnd(0), 0, 0, 0);
check0=CreateWindow(0, "BUTTON", "Check0", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 60, 70, 20, gethwnd(0), 0, 0, 0);
edit0=CreateWindow(0, "EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 90, 120, 20, gethwnd(0), 0, 0, 0);
edit1=CreateWindow(0, "EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 120, 20, gethwnd(0), 0, 0, 0);
link0=CreateWindow(0, "SysLink", "kibor-bot.com", WS_CHILD | WS_VISIBLE | LWS_USEVISUALSTYLE, 20, 160, 120, 20, gethwnd(0), 0, 0, 0);
char wchar[99];
MultiByteToWideChar(CP_ACP, 0, "Подсказка", -1, address(#wchar[0]), sizearray(wchar));
sendmessage(EM_SETCUEBANNER, FALSE, address(#wchar[0]), formatiw(edit0)); // отображать подсказку в edit
sendmessage(EM_SETPASSWORDCHAR, formatci('*'), 0, formatiw(edit1)); // заменять все символы в edit
} |
|
|
Redear |
Отправлено: 25 Января, 2024 - 10:09:09
|
Мастер
Покинул форум
Сообщений всего: 202
Дата рег-ции: Июль 2022
Репутация: 0
|
Zireael пишет: code (Отобразить)CODE:// включить визуальный стиль
#define ACTCTX_FLAG_RESOURCe_NAME_VALID 0x008
#define ACTCTX_FLAG_SET_PROCESS_DEFAULT 0x010
#define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID 0x004
external(INT, "CreateActCtx", "CreateActCtxA", "Kernel32.dll");
external(INT, "GetSystemDirectory", "GetSystemDirectoryA", "Kernel32.dll");
EnableVisualStyles();
function EnableVisualStyles()
{
int Cookie=0;
char Directory[260], Source[260];
strcpy(#Source[0], "shell32.dll");
GetSystemDirectory(address(#Directory[0]), sizearray(Directory));
int ACTCTX[8] = {32, ACTCTX_FLAG_RESOURCe_NAME_VALID | ACTCTX_FLAG_SET_PROCESS_DEFAULT | ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID,
address(#Source[0]), 0, address(#Directory[0]), 124, 0, 0};
CreateActCtx(address(#ACTCTX[0]));
}
//////////////
// для примера создание диалогового окна с контролами
#define CP_ACP 0
#define FALSE 0
#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define BS_AUTOCHECKBOX 3
#define EM_SETCUEBANNER 0x1501
#define EM_SETPASSWORDCHAR 0xCC
#define LWS_USEVISUALSTYLE 8
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "MultiByteToWideChar", "MultiByteToWideChar", "Kernel32.dll");
int b0, check0, edit0, edit1, link0;
createdialog(0);
showdialog(0, "Dialog", 200, 200, 250, 300, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
b0=CreateWindow(0, "BUTTON", "Button0", WS_CHILD | WS_VISIBLE, 20, 20, 100, 25, gethwnd(0), 0, 0, 0);
check0=CreateWindow(0, "BUTTON", "Check0", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 60, 70, 20, gethwnd(0), 0, 0, 0);
edit0=CreateWindow(0, "EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 90, 120, 20, gethwnd(0), 0, 0, 0);
edit1=CreateWindow(0, "EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 120, 20, gethwnd(0), 0, 0, 0);
link0=CreateWindow(0, "SysLink", "kibor-bot.com", WS_CHILD | WS_VISIBLE | LWS_USEVISUALSTYLE, 20, 160, 120, 20, gethwnd(0), 0, 0, 0);
char wchar[99];
MultiByteToWideChar(CP_ACP, 0, "Подсказка", -1, address(#wchar[0]), sizearray(wchar));
sendmessage(EM_SETCUEBANNER, FALSE, address(#wchar[0]), formatiw(edit0)); // отображать подсказку в edit
sendmessage(EM_SETPASSWORDCHAR, formatci('*'), 0, formatiw(edit1)); // заменять все символы в edit
}
привет, супер. подскажи, а стиль только один или можно его как то выбрать? |
|
|
|