1. Kibor - 15 Января, 2021 - 12:54:53 - перейти к сообщению
Продолжение темы "Версия 5.50 Получение и обработка сообщений в немодальных окнах Кибор".
2. Zireael - 15 Января, 2021 - 12:55:08 - перейти к сообщению
Цитата:
Подскажите как на этих полях размещать элементы?
Если имеется ввиду на вкладках, то чуть выше есть пример.
Цитата:
Еще вопрос как изменить цвет текстового сообщения в поле edit?
Использовать RichEdit https://kibor-bot.com/forum/topi...66162#1569166162
3. Karkun - 16 Января, 2021 - 00:35:34 - перейти к сообщению
Zireael пишет:
Цитата:
Если имеется ввиду на вкладках, то чуть выше есть пример.
Если имеется ввиду на вкладках, то чуть выше есть пример.
Спасибо нашел.
Подскажите а можно как то сделать, что бы фокус в поле edit всегда был на последнем сообщении. Если много сообщений то в работе не получается отслеживать сообщения т.к они смещаются вниз по списку.
4. Zireael - 16 Января, 2021 - 01:21:12 - перейти к сообщению
Цитата:
можно как то сделать, что бы фокус в поле edit всегда был на последнем сообщении.
code (Отобразить)
5. Karkun - 16 Января, 2021 - 01:58:54 - перейти к сообщению
Zireael пишет:
code (Отобразить)
Огромное спасибо.
6. Karkun - 18 Января, 2021 - 07:21:15 - перейти к сообщению
Zireael пишет:
Если имеется ввиду на вкладках, то чуть выше есть пример.
Разобрался с примером все понятно как разместить элементы на первой вкладке.
на второй и третий разместил статик и кнопки. но не получается разместить такие элементы как например галки или checkbox на второй и третьей вкладки . Если я использую константы элементов на дочерних вкладках то они не отображаются а если не использую то отображаются как кнопки.
7. Zireael - 18 Января, 2021 - 07:36:14 - перейти к сообщению
Цитата:
но не получается разместить такие элементы как например галки или checkbox
checkbox это тоже button, только со стилем:
CODE:
#define BS_AUTOCHECKBOX 3
CODE:
check=CreateWindow(0, "BUTTON", "Галка1", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 10, 70, 20, gethwnd(0), 0, 0, 0);
8. Karkun - 18 Января, 2021 - 07:55:39 - перейти к сообщению
Zireael пишет:
checkbox это тоже button, только со стилем:
CODE:
#define BS_AUTOCHECKBOX 3
CODE:
check=CreateWindow(0, "BUTTON", "Галка1", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 10, 70, 20, gethwnd(0), 0, 0, 0);
CODE:
#define BS_AUTOCHECKBOX 3
CODE:
check=CreateWindow(0, "BUTTON", "Галка1", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 10, 70, 20, gethwnd(0), 0, 0, 0);
Благодарю вас. Тогда можно еще немного ликбеза для начинающего, почему для простого окна нам достаточно строки
Zireael пишет:
CODE:
CreateWindow(0, "BUTTON", "Галка0", 3+1342177280, 20, 10, 70, 20, formatwi(w), 0, 0, 0);
// CreateWindow(0, "BUTTON", "Галка0", 1342177283, 20, 10, 70, 20, formatwi(w), 0, 0, 0); // или так, без разницы
Создаст галку.
9. Zireael - 18 Января, 2021 - 08:09:27 - перейти к сообщению
Цитата:
почему для простого окна нам достаточно строки
Изначально не было констант в кибор. Вообще лучше так:
CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define BS_AUTOCHECKBOX 3
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
int button0;
int check0;
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 200, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
button0=CreateWindow(0, "BUTTON", "Кнопка", WS_CHILD | WS_VISIBLE, 20, 10, 100, 24, gethwnd(0), 0, 0, 0); // создать кнопку
check0=CreateWindow(0, "BUTTON", "Галка", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 50, 100, 20, gethwnd(0), 0, 0, 0); // создать галку
}
function getmessage(0, WM_COMMAND)
{
if (message.lparam==button0) // если нажата кнопка
{
messagebox("Нажата кнопка");
}
if (message.lparam==check0) // если нажата галка
{
messagebox("Нажата галка");
}
}
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define BS_AUTOCHECKBOX 3
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
int button0;
int check0;
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 200, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
button0=CreateWindow(0, "BUTTON", "Кнопка", WS_CHILD | WS_VISIBLE, 20, 10, 100, 24, gethwnd(0), 0, 0, 0); // создать кнопку
check0=CreateWindow(0, "BUTTON", "Галка", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 50, 100, 20, gethwnd(0), 0, 0, 0); // создать галку
}
function getmessage(0, WM_COMMAND)
{
if (message.lparam==button0) // если нажата кнопка
{
messagebox("Нажата кнопка");
}
if (message.lparam==check0) // если нажата галка
{
messagebox("Нажата галка");
}
}
10. Karkun - 18 Января, 2021 - 08:40:22 - перейти к сообщению
Zireael пишет:
Изначально не было констант в кибор. Вообще лучше так:
В общем это два разных способа. Тогда мне стоит привести все к одному виду.
Ну сейчас все намного проще когда я в первый раз посмотрел на этот код думал никогда не пойму. Спасибо за разъяснения.