Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.50 Получение и обработка сообщений в немодальных окнах Кибор

Страниц (3): « 1 [2] 3 »
 

11. Karkun - 20 Января, 2021 - 12:32:36 - перейти к сообщению
И опять вопрос. Создал на третий вкладке Tab элемент комбо, но не получается отобразить список комбо из массива.
CODE:
control[2][4] = CreateWindow(0, "COMBOBOX", "", CB_ADDSTRING | CB_DELETESTRING | CB_FINDSTRING |
CB_GETCURSEL | WS_CHILD , 20, 150, 110, 20, gethwnd(0), 0, 0, 0);



for(i=0; i<sizearray(combo0_text); i++)
{
strcpy(#c[0], combo0_text[i]);
sendmessage(CB_ADDSTRING, 0, address(#c[0]), formatiw(control[2][4]));
}


подскажите как это решить.
12. Zireael - 20 Января, 2021 - 12:38:44 - перейти к сообщению
Четвёртым параметром функции CreateWindow нужно указывать стиль окна.
https://docs.microsoft.com/en-us...sg/window-styles
и дополнительно для комбо:
https://docs.microsoft.com/en-us...combo-box-styles
13. Karkun - 20 Января, 2021 - 14:29:15 - перейти к сообщению
 Zireael пишет:
Четвёртым параметром функции CreateWindow нужно указывать стиль окна.
https://docs.microsoft.com/en-us...sg/window-styles
и дополнительно для комбо:
https://docs.microsoft.com/en-us...combo-box-styles


Там написано оч мудро))
В какой системе написаны данные числа?
#define CBS_SIMPLE 0x0000L
14. Zireael - 20 Января, 2021 - 14:38:18 - перейти к сообщению
 Цитата:
В какой системе написаны данные числа?
#define CBS_SIMPLE 0x0000L

Шестнадцатеричной. L не нужно писать.
CODE:
#define CB_ADDSTRING 0x0143
messagebox(CB_ADDSTRING);

В калькуляторе можно конвертировать.
15. Karkun - 27 Января, 2021 - 08:36:42 - перейти к сообщению
Подскажите от чего зависит расположение окна диалога поверх всех окон кроме седьмого параметра
 Цитата:
showdialog(0, "заголовок", позицияX, позицияY, ширина, высота, 1, 0);
первый - номер созданного диалога.
седьмой: 0 - при нажатие крестика (закрыть) скрывает окно. вызвать его можно опять только программно. 1 -при нажатие крестика (закрыть) останавливает скрипт. 2 - при нажатие крестика (закрыть) сворачивает окно, 3 - при нажатие крестика закрывает программу, 4 - при нажатие на крестик данное действие игнорируется и можно обработать сообщение WM_CLOSE.
восьмой ... 0 - окно обычное.. 1- находится поверх всех окон..

Дело в том что окно в моем диалоге ведет себя по разному даже вроде бы в одинаковой ситуации. Например иногда скрипт запускает игру, персонажа и остается постоянно поверх всех окон а иногда нет я пока не уловил с чем это связано. если запустить скрипт когда игра уже загружена то окно поверх, но при вылете игры скрипт загружает ее и остается снизу.
16. Zireael - 27 Января, 2021 - 08:40:04 - перейти к сообщению
 Цитата:
постоянно поверх всех окон а иногда нет

При сборке exe не ставить галку 'Скрывать после запуска с панели задач'.
17. Karkun - 27 Января, 2021 - 08:58:58 - перейти к сообщению
 Zireael пишет:
При сборке exe не ставить галку 'Скрывать после запуска с панели задач'.
Я и не ставлю. Если не собирать а запускать из под кибора та же картина.
18. Karkun - 01 Февраля, 2021 - 03:29:23 - перейти к сообщению
 
 Zireael пишет:
пишет:
При сборке exe не ставить галку 'Скрывать после запуска с панели задач'.

 Karkun пишет:
Я и не ставлю. Если не собирать а запускать из под кибора та же картина.

А возможно как то обновлять этот параметр то есть изменять в процессе на 0 а потом опять на 1.

Есть еще один вопрос, а как при нажатии на кнопку в окне ожидать и получить вариант ответа с какой то другой кнопки этого же окна.
19. Zireael - 01 Февраля, 2021 - 03:44:09 - перейти к сообщению
 Цитата:
А возможно как то обновлять этот параметр то есть изменять в процессе на 0 а потом опять на 1.

Вызвать showdialog с нужными параметрами.
 Цитата:
а как при нажатии на кнопку в окне ожидать и получить вариант ответа с какой то другой кнопки этого же окна.

Вызвать функцию, в которой ожидать когда будет нажата какая-то кнопка.
20. Karkun - 01 Февраля, 2021 - 09:22:02 - перейти к сообщению
Спасибо пару слов, а мысли пошли в нужном направлении))
как то так пока получилось
CODE:
function getk();
{
if(getkeystate(d1))
{
while(getkeystate(d1))sleep(10);

return 1;
}

}

Powered by ExBB FM 1.0 Final