Nikanr |
Отправлено: 29 Сентября, 2019 - 21:28:09
|
Специалист
Покинул форум
Сообщений всего: 231
Дата рег-ции: Март 2019
Репутация: 5
|
Есть диалог со списком combo, нужно получить указатель на combo и сделать его неактивным. Но почему-то с button,check и edit получается, а с combo - нет
Код (Отобразить)
CODE:external (INT, "EnableWindow","EnableWindow","User32.dll" );
int pos_size_combo1[1][4];
string text_combo1[1][1];
int strok_combo1[1];
int flag_combo1[1];
pos_size_combo1[0][0]=97; pos_size_combo1[0][1]=116; pos_size_combo1[0][2]=101; pos_size_combo1[0][3]=81;
strok_combo1[0]=1;
text_combo1[0][0]="Список 0";
flag_combo1[0]=0;
createdialog(1, COMBO, #pos_size_combo1[0][0], #text_combo1[0][0], #strok_combo1[0], #flag_combo1[0]);
showdialog(1, "Пополнение еды", 835, 390, 250, 300, 1, 1);
win w=window(-1, -1, -1, -1, 101, 81, -1);
EnableWindow(formatwi(w), 0);
loop() sleep(10);
|
|
|
Zireael |
Отправлено: 29 Сентября, 2019 - 21:43:40
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
CODE:external (INT, "EnableWindow","EnableWindow","User32.dll" );
external (INT, "FindWindow","FindWindowExA","User32.dll" );
int pos_size_combo1[1][4];
string text_combo1[1][1];
int strok_combo1[1];
int flag_combo1[1];
pos_size_combo1[0][0]=97; pos_size_combo1[0][1]=116; pos_size_combo1[0][2]=101; pos_size_combo1[0][3]=81;
strok_combo1[0]=1;
text_combo1[0][0]="Список 0";
flag_combo1[0]=0;
int handle_combo;
createdialog(1, COMBO, #pos_size_combo1[0][0], #text_combo1[0][0], #strok_combo1[0], #flag_combo1[0]);
showdialog(1, "Пополнение еды", 300, 300, 250, 300, 1, 1);
EnableWindow(handle_combo, 0); // отключить окно
loop() sleep(10);
function getmessage(1, WM_CREATE)
{
handle_combo=FindWindow(gethwnd(1), 0, "ComboBox", 0); // найти окно с указанным классом
} |
|
|
Zireael |
Отправлено: 29 Сентября, 2019 - 22:33:34
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: а если таких combo будет несколько?
code (Отобразить)CODE:external (INT, "EnableWindow","EnableWindow","User32.dll" );
external (INT, "FindWindow","FindWindowExA","User32.dll" );
int pos_size_combo0[3][4];
string text_combo0[3][1];
int strok_combo0[3];
int flag_combo0[3];
pos_size_combo0[0][0]=49; pos_size_combo0[0][1]=40; pos_size_combo0[0][2]=100; pos_size_combo0[0][3]=80;
pos_size_combo0[1][0]=54; pos_size_combo0[1][1]=98; pos_size_combo0[1][2]=100; pos_size_combo0[1][3]=80;
pos_size_combo0[2][0]=54; pos_size_combo0[2][1]=157; pos_size_combo0[2][2]=100; pos_size_combo0[2][3]=80;
strok_combo0[0]=1; strok_combo0[1]=1; strok_combo0[2]=1;
text_combo0[0][0]="Список 0";
text_combo0[1][0]="Список 1";
text_combo0[2][0]="Список 2";
flag_combo0[0]=0; flag_combo0[1]=0; flag_combo0[2]=0;
int handle_combo[3];
createdialog(1, COMBO, #pos_size_combo0[0][0], #text_combo0[0][0], #strok_combo0[0], #flag_combo0[0]);
showdialog(1, "Диалог", 300, 300, 250, 300, 1, 1);
messagebox("Хендл первого комбо: "+format(handle_combo[0]));
messagebox("Хендл второго комбо: "+format(handle_combo[1]));
messagebox("Хендл третьего комбо: "+format(handle_combo[2]));
EnableWindow(handle_combo[1], 0); // отключить 2й комбо
loop() sleep(10);
function getmessage(1, WM_CREATE)
{
handle_combo[0]=FindWindow(gethwnd(1), 0, "ComboBox", 0); // найти окно с указанным классом
handle_combo[1]=FindWindow(gethwnd(1), handle_combo[0], "ComboBox", 0); // найти окно с указанным классом
handle_combo[2]=FindWindow(gethwnd(1), handle_combo[1], "ComboBox", 0); // найти окно с указанным классом
} |
|
|
|