neba2101 |
Отправлено: 08 Ноября, 2022 - 12:39:50
|
Мастер
Покинул форум
Сообщений всего: 154
Дата рег-ции: Февр. 2017
Репутация: 4
|
OKStyle пишет: Доброго времени суток, друзья. Наткнулся на возможность создать интерфейс в Кибор'е и очень обрадовался этому.
Подскажите пожалуйста, как использовать кнопку активации (Галочка).
Пример - в зависимости от того какие галочки включены, используется функции которые необходимы (Понимаю что нужна проверка перед выполнением функции, но не понял как правильно прочитать значение галочки из интерфейса).
Заранее спасибо!
(для просмотра ссылки Вам необходимо авторизоваться) Код (Отобразить)
CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define BS_MULTILINE 0x00002000
#define BS_AUTOCHECKBOX 0x00000003
#define BS_AUTORADIOBUTTON 0x00000009
#define BM_SETCHECK 0x00F1
#define BST_UNCHECKED 0x0000
#define BST_CHECKED 0x0001
#define TRUE 1
#define WM_SETFONT 0x0030
#define RUSSIAN_CHARSET 204
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "GetWindowRect", "GetWindowRect", "User32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "DeleteFile", "DeleteFileA", "kernel32.dll");
int h_font;
string rn = formatic(13)+formatic(10);
int dialogPosX_0 = 567, dialogPosY_0 = 245;
int check0[1];
int flag_check0[1] = { 0 };
createdialog(0);
showdialog(0, "Диалог0", dialogPosX_0, dialogPosY_0, 251, 92, 4, 1);
loop()
{
if(flag_check0[0])//Если галка включена
{
messagebox("Галка включена");
}
}
end_0:;
function getmessage(0, WM_CREATE)
{
int i;
h_font = CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial");
check0[0] = CreateWindow(0, "BUTTON", "Check0", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 10, 5, 80, 20, gethwnd(0), 0, 0, 0);
for(i=0; i<1; i++)sendmessage(BM_SETCHECK, flag_check0[i], 0, formatiw(check0[i]));
for(i=0; i<1; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(check0[i]));
}
function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<1; i++) // обработка нажатий галок
{
if(message.lparam == check0[i])
{
if(flag_check0[i])flag_check0[i] = 0;
else flag_check0[i] = 1;
return;
}
}
}
function getmessage(0, WM_CLOSE)
{
DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
}
|
|
|
OKStyle |
Отправлено: 08 Ноября, 2022 - 21:22:59
|
Участник
Покинул форум
Сообщений всего: 81
Дата рег-ции: Сент. 2022
Репутация: 6
|
Благодарю, это именно то что я искал.
neba2101 пишет: OKStyle пишет: Доброго времени суток, друзья. Наткнулся на возможность создать интерфейс в Кибор'е и очень обрадовался этому.
Подскажите пожалуйста, как использовать кнопку активации (Галочка).
Пример - в зависимости от того какие галочки включены, используется функции которые необходимы (Понимаю что нужна проверка перед выполнением функции, но не понял как правильно прочитать значение галочки из интерфейса).
Заранее спасибо!
(для просмотра ссылки Вам необходимо авторизоваться) Код (Отобразить)
CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define BS_MULTILINE 0x00002000
#define BS_AUTOCHECKBOX 0x00000003
#define BS_AUTORADIOBUTTON 0x00000009
#define BM_SETCHECK 0x00F1
#define BST_UNCHECKED 0x0000
#define BST_CHECKED 0x0001
#define TRUE 1
#define WM_SETFONT 0x0030
#define RUSSIAN_CHARSET 204
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "GetWindowRect", "GetWindowRect", "User32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "DeleteFile", "DeleteFileA", "kernel32.dll");
int h_font;
string rn = formatic(13)+formatic(10);
int dialogPosX_0 = 567, dialogPosY_0 = 245;
int check0[1];
int flag_check0[1] = { 0 };
createdialog(0);
showdialog(0, "Диалог0", dialogPosX_0, dialogPosY_0, 251, 92, 4, 1);
loop()
{
if(flag_check0[0])//Если галка включена
{
messagebox("Галка включена");
}
}
end_0:;
function getmessage(0, WM_CREATE)
{
int i;
h_font = CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial");
check0[0] = CreateWindow(0, "BUTTON", "Check0", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 10, 5, 80, 20, gethwnd(0), 0, 0, 0);
for(i=0; i<1; i++)sendmessage(BM_SETCHECK, flag_check0[i], 0, formatiw(check0[i]));
for(i=0; i<1; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(check0[i]));
}
function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<1; i++) // обработка нажатий галок
{
if(message.lparam == check0[i])
{
if(flag_check0[i])flag_check0[i] = 0;
else flag_check0[i] = 1;
return;
}
}
}
function getmessage(0, WM_CLOSE)
{
DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
}
|
|
|
|