Kibor |
Отправлено: 18 Апреля, 2023 - 20:00:59
|
Эксперт
Покинул форум
Сообщений всего: 8098
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 355
|
Martin пишет: думал может как то по другому можно
можно и по другому.
Замените
CODE:strcpy(#cl[0], line[n]);
на
CODE:strcpy(#cl[0], utf8toansi (line[n]));
Будут корректно отображаться файлы в UTF-8. А в ANSI будут вопросы.
Определитесь с форматом. |
|
|
Martin |
Отправлено: 23 Апреля, 2023 - 17:03:39
|
Мастер
Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022
Репутация: 1
|
Как сделать чтобы чек боксы были не активные, серые, чтобы их не возможно было выбрать? И стали активные после нажатия другого чек бокса?
код (Отобразить)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 = 809, dialogPosY_0 = 461;
int check0[4];
int flag_check0[4] = { 0, 0, 0, 0 };
createdialog(0);
showdialog(0, "Диалог0", dialogPosX_0, dialogPosY_0, 222, 170, 4, 1);
loop()
{
// тут нужный код
sleep(10);
}
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", "Активировать чекбоксы", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 16, 184, 20, gethwnd(0), 0, 0, 0);
check0[1] = CreateWindow(0, "BUTTON", "Новая функция", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 48, 136, 20, gethwnd(0), 0, 0, 0);
check0[2] = CreateWindow(0, "BUTTON", "Новая функция 2", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 72, 136, 20, gethwnd(0), 0, 0, 0);
check0[3] = CreateWindow(0, "BUTTON", "Новая функция 3", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 96, 136, 20, gethwnd(0), 0, 0, 0);
for(i=0; i<4; i++)sendmessage(BM_SETCHECK, flag_check0[i], 0, formatiw(check0[i]));
for(i=0; i<4; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(check0[i]));
}
function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<4; 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(); // закрыть кибор
}
|
|
|
Martin |
Отправлено: 23 Апреля, 2023 - 18:09:35
|
Мастер
Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022
Репутация: 1
|
Не получатся самостоятельно разобраться, как подать команду сделать кнопку активной?
Где ошибка? (Отобразить)#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
#define WS_DISABLED 0x08000000
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 = 809, dialogPosY_0 = 461;
int check0[4];
int flag_check0[4] = { 0, 0, 0, 0 };
createdialog(0);
showdialog(0, "Диалог0", dialogPosX_0, dialogPosY_0, 222, 170, 4, 1);
loop()
{
// тут нужный код
sleep(10);
}
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", "Активировать чекбоксы", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 16, 184, 20, gethwnd(0), 0, 0, 0);
check0[1] = CreateWindow(0, "BUTTON", "Новая функция", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 48, 136, 20, gethwnd(0), 0, 0, 0);
check0[2] = CreateWindow(0, "BUTTON", "Новая функция 2", BS_AUTOCHECKBOX | WS_DISABLED | WS_CHILD, 16, 72, 136, 20, gethwnd(0), 0, 0, 0);
check0[3] = CreateWindow(0, "BUTTON", "Новая функция 3", BS_AUTOCHECKBOX | WS_DISABLED | WS_CHILD, 16, 96, 136, 20, gethwnd(0), 0, 0, 0);
for(i=0; i<4; i++)sendmessage(BM_SETCHECK, flag_check0[i], 0, formatiw(check0[i]));
for(i=0; i<4; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(check0[i]));
}
function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<4; i++) // обработка нажатий галок
{
if(message.lparam == check0[i])
{
if(flag_check0[i])flag_check0[i] = 0;
else flag_check0[i] = 1;
return;
}
}
if(message.lparam == check0[0])
{
if(flag_check0[2]) EnableWindow(formatwi(window ("Новая функция 2", "BUTTON", 16, 72, 136, 206,-1)), 1);
}
}
function getmessage(0, WM_CLOSE)
{
DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
} |
|
|
Kibor |
Отправлено: 23 Апреля, 2023 - 18:28:06
|
Эксперт
Покинул форум
Сообщений всего: 8098
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 355
|
Кстати если строка
for(i=0; i<4; i++)sendmessage(BM_SETCHECK, flag_check0[i], 0, formatiw(check0[i]));
то в ней ошибка.
Правильно
for(i=0; i<4; i++)sendmessage(BM_SETCHECK, 0, flag_check0[i], formatiw(check0[i]));
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
#define WS_DISABLED 0x08000000
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");
external(INT, "EnableWindow", "EnableWindow", "User32.dll");
int h_font;
string rn = formatic(13)+formatic(10);
int dialogPosX_0 = 809, dialogPosY_0 = 461;
int check0[4];
int flag_check0[4] = { 0, 0, 0, 0 };
createdialog(0);
showdialog(0, "Диалог0", dialogPosX_0, dialogPosY_0, 222, 170, 4, 1);
loop()
{
// тут нужный код
sleep(10);
}
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", "Активировать чекбоксы", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 16, 184, 20, gethwnd(0), 0, 0, 0);
check0[1] = CreateWindow(0, "BUTTON", "Новая функция", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 48, 136, 20, gethwnd(0), 0, 0, 0);
check0[2] = CreateWindow(0, "BUTTON", "Новая функция 2", BS_AUTOCHECKBOX | WS_DISABLED | WS_CHILD, 16, 72, 136, 20, gethwnd(0), 0, 0, 0);
check0[3] = CreateWindow(0, "BUTTON", "Новая функция 3", BS_AUTOCHECKBOX | WS_DISABLED | WS_CHILD, 16, 96, 136, 20, gethwnd(0), 0, 0, 0);
for(i=0; i<4; i++)sendmessage(BM_SETCHECK, 0, flag_check0[i], formatiw(check0[i]));
for(i=0; i<4; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(check0[i]));
sendmessage(BM_SETCHECK, 1, flag_check0[0], formatiw(check0[0]));
flag_check0[0] = 1;
}
function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<4; i++) // обработка нажатий галок
{
if(message.lparam == check0[i])
{
if(flag_check0[i])flag_check0[i] = 0;
else flag_check0[i] = 1;
}
if (flag_check0[0]==1)EnableWindow(check0[1], 1);
else EnableWindow(check0[1], 0);
}
}
function getmessage(0, WM_CLOSE)
{
DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
} |
|
|
|