Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (17): В начало « 2 3 4 5 [6] 7 8 9 10 » В конец    

> Описание: Продолжение
007wan
Отправлено: 24 Сентября, 2019 - 11:24:28
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




 Zireael пишет:
 Цитата:
Как вывести такую кнопку на диалог,рядом с закрыть?

CODE:
#define WS_EX_CONTEXTHELP 1024
#define WS_MINIMIZEBOX 131072
#define GWL_EXSTYLE -20
#define GWL_STYLE -16

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "SetWindowLong", "SetWindowLongA", "User32.dll" );
external(INT, "GetWindowLong", "GetWindowLongA", "User32.dll" );

createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 0);

loop()sleep(100);

function getmessage (0, WM_CREATE)
{
SetWindowLong(gethwnd(0), GWL_STYLE, GetWindowLong(gethwnd(0), GWL_STYLE) + WS_MINIMIZEBOX);
SetWindowLong(gethwnd(0), GWL_EXSTYLE, GetWindowLong(gethwnd(0), GWL_EXSTYLE) - WS_EX_CONTEXTHELP);
}
Каряво выглядит, Текст диалога в правой стороне.
---
Может так нужно было?
Код (Отобразить)
Изменил минус, на плюс))
Кстати, как убрать этот курсор, если его не убрать, то ладно, а можно обработать это сообщение? Может WM_HELP?
(Добавление)
Вот более нормальный вариант. Предыдущие 2 как-то с изъянами:
-можно было изменять размер диалога при растягивании за угол
-Название диалога было в правой стороне.
---
Заменить на:
CODE:
SetWindowLong(gethwnd(1), GWL_STYLE, WS_SYSMENU + WS_CAPTION);//не давать растягивать диалог за края и дать ТОЛЬКО кнопку закрыть.
SetWindowLong(gethwnd(1), GWL_EXSTYLE, GetWindowLong(gethwnd(1), GWL_EXSTYLE) + WS_EX_CONTEXTHELP);//Дём кнопку помощи.

(Добавление)
 007wan пишет:
SetWindowLong(gethwnd(0), GWL_STYLE, GetWindowLong(gethwnd(0), GWL_STYLE) + WS_MINIMIZEBOX);

 Цитата:
Стиль WS_EX_CONTEXTHELP не может использоваться со стилями WS_MAXIMIZEBOX или WS_MINIMIZEBOX.

(Добавление)
Помогите запонить структуру в WM_HELP, что бы получать сообщение при нажатии на кнопку эту
(Добавление)
Не работает
CODE:
function getmessage(1, WM_HELP)
{
messagebox(1);
}

(Отредактировано автором: 24 Сентября, 2019 - 11:28:59)

 
 Top
Zireael
Отправлено: 24 Сентября, 2019 - 12:13:36
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
запонить структуру в WM_HELP, что бы получать сообщение при нажатии на кнопку эту

Её не заполнить надо, а прочитать.
WM_HELP (Отобразить)
 
 Top
007wan
Отправлено: 24 Сентября, 2019 - 12:18:24
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




Zireael , Блин. А в Word при нажатии в каком-то диалоге, сразу открывает помощника, и не нужно никуда потом нажимать(на другой контрол итд)
 
 Top
Zireael
Отправлено: 24 Сентября, 2019 - 12:35:54
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




CODE:
#define WS_EX_CONTEXTHELP 1024
#define WS_CAPTION 12582912
#define WS_SYSMENU 524288
#define GWL_EXSTYLE -20
#define GWL_STYLE -16
#define SC_CONTEXTHELP 61824
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "SetWindowLong", "SetWindowLongA", "User32.dll" );
external(INT, "GetWindowLong", "GetWindowLongA", "User32.dll" );

createdialog(0);
showdialog(0, "Диалог",150, 200, 400, 300, 1, 0);

loop()sleep(100);

function getmessage (0, WM_CREATE)
{
SetWindowLong(gethwnd(0), GWL_STYLE, WS_SYSMENU + WS_CAPTION);
SetWindowLong(gethwnd(0), GWL_EXSTYLE, GetWindowLong(gethwnd(0), GWL_EXSTYLE) + WS_EX_CONTEXTHELP);
}

function getmessage(0, WM_SYSCOMMAND)
{
if(message.wparam==SC_CONTEXTHELP)messagebox("+++"); // если нажат знак вопроса в заголовке
}
 
 Top
007wan
Отправлено: 24 Сентября, 2019 - 12:47:45
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




Zireael , То самое)) спасибки)
(Добавление)
А как сделать ThreeView? не нашел нужных констант.
 
 Top
Zireael
Отправлено: 24 Сентября, 2019 - 14:27:34
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
не нашел нужных констант.

Какие надо?
 
 Top
007wan
Отправлено: 24 Сентября, 2019 - 14:32:13
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




 Zireael пишет:
Какие надо?
Да Всё норм, только структуру не могу заполнить.
CODE:
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define WS_CHILD 1073741824
#define GWL_HINSTANCE -6
#define TVM_INSERTITEMA 4352

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetWindowLong", "GetWindowLongA", "User32.dll");
external(INT, "SendMessage", "SendMessageA", "User32.dll");

int histance, Three;

createdialog(0);
showdialog(0, "Dialog", 300, 300, 400, 500, 1, 1);

loop()
{
sleep(10);
}

function getmessage(0, WM_CREATE)
{
histance=GetWindowLong(gethwnd(0), GWL_HINSTANCE);

Three=CreateWindow(0, "SysTreeView32", "", WS_VISIBLE | WS_CHILD | WS_BORDER, 10, 10, 310, 100, gethwnd(0), 0, histance, 0, 0);

SendMessage(Three, TVM_INSERTITEMA, 0, "TVINSERTSTRUCTA");//структура
}

(Добавление)
Странно, что WM_SYSCOMMAND message.wparam == SC_CLOSE преобладает над WM_CLOSE
(Добавление)
Что я делаю не так?
Code (Отобразить)
Если сделать так:
Код (Отобразить)
*про директиву не забыл
 
 Top
ivantu
Отправлено: 25 Сентября, 2019 - 08:47:54
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Zireael,
Подскажите пожалуйста как в ListView:
- Можно дать текст и фон не всем строчкам, а только одной и в любом порядке?
- Как добавить картинку в любой столбец?

(Отредактировано автором: 25 Сентября, 2019 - 08:48:46)

 
 Top
Zireael
Отправлено: 25 Сентября, 2019 - 10:54:13
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
- Можно дать текст и фон не всем строчкам, а только одной и в любом порядке?
- Как добавить картинку в любой столбец?

1. Не знаю.
2. ImageList. Не смотрел что там надо, пока некогда.
 
 Top
ivantu
Отправлено: 25 Сентября, 2019 - 11:34:55
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




как время будет, гляньте пожалуйста
 Zireael пишет:

1 :
CODE:
итемы ListView раскрашивать можно еще через WM_DRAWITEM с флагом LVS_OWNERDRAWFIXED,
там принципы те же, смотреть нужно описание флагов структуры DRAWITEMSTRUST

2 :
Тут много чего но не понятно для меня(для просмотра ссылки Вам необходимо авторизоваться)

(Отредактировано автором: 25 Сентября, 2019 - 11:35:36)

 
 Top
Страниц (17): В начало « 2 3 4 5 [6] 7 8 9 10 » В конец
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by