Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Как сделать в редакторе перенос строки у галки чек ?
В редакторе никак. Можно после запуска диалога изменить стиль окна.
Вариант1 (Отобразить)CODE:#define GWL_STYLE -16
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define BS_AUTOCHECKBOX 3
#define BS_MULTILINE 8192
external(INT, "SetWindowLong", "SetWindowLongA", "User32.dll" );
external(INT, "FindWindowEx", "FindWindowExA", "User32.dll" );
int pos_size_check0[1][4];
string text_check0[1];
int flag_check0[1];
pos_size_check0[0][0]=10; pos_size_check0[0][1]=25; pos_size_check0[0][2]=70; pos_size_check0[0][3]=50;
text_check0[0]="Текст галки";
flag_check0[0]=0;
createdialog(0, CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
int handle=FindWindowEx(gethwnd(0), 0, "Button", "Текст галки"); // поиск окна
if(handle)SetWindowLong(handle, GWL_STYLE, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | BS_MULTILINE); // устанавливаем стиль
showdialog(0, "Dialog", 400, 400, 300, 300, 1, 1);
loop()sleep(10);
Вариант2 (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define BS_AUTOCHECKBOX 3
#define BS_MULTILINE 8192
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
int check;
createdialog(0);
showdialog(0, "Диалог",500, 400, 300, 300, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
check=CreateWindow(0, "BUTTON", "Текст галки", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | BS_MULTILINE, 10, 25, 70, 50, gethwnd(0), 0, 0, 0);
}
Цитата: На форуме были примеры как сделать открытие доп. диалогов. А как такое сделать в редакторе диалогов ?
Делайте 2 диалога, только имена переменных не должны совпадать. При нажатии кнопки "настройка" в первом диалоге открывать второй. |