Что нового

Как перетащить текст на окно GUI и получить его?

Andrey_A

Продвинутый
Сообщения
319
Репутация
68
Возник вопрос, подскажите пожалуйста как решить.
1. Создано окно Gui
2. Необходимо из текстового редактора перетащить текст в окно и его получить

При расширенном параметре $WS_EX_ACCEPTFILES, удаётся перетащить файл из проводника, файлового менеджера, но текст из текстового редактора не удаётся - появляется курсор вида запрета и всё. Другие параметры тоже не помогли. Может кто сталкивался.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Andrey_A
посмотри пример из справки по
Код:
_GUICtrlRichEdit_Create
 
Автор
A

Andrey_A

Продвинутый
Сообщения
319
Репутация
68
joiner [?]
посмотри пример из справки по

Спасибо, посмотрел, но так и не смог перехватить текст до попадания в окно. Ведь при перетаскивании текст может попасть куда угодно, а необходимо куда надо, а для этого нужно его захватить при броске...
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Andrey_A [?]
Ведь при перетаскивании текст может попасть куда угодно, а необходимо куда надо, а для этого нужно его захватить при броске...
не куда угодно, а где будет установлен курсор. можно вставить посреди слова. захватываем текст и ведем по строчкам в окне нашей программы. будет видно как перемещается курсор. и вставляем где надо
 
Автор
A

Andrey_A

Продвинутый
Сообщения
319
Репутация
68
joiner [?]
не куда угодно, а где будет установлен курсор.
Это понятно автору, но не пользователю окошко ровно в 10 символов и там уже есть информация и необходимо этим забросом заменить её...

Я видел там есть функция __RichCom_Object_GetDragDropEffect и она регистрируется, но как с ней взаимодействовать... хотя может есть другой способ получения брошенного текста...
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Andrey_A
что то я запутался что нужно. пользователю нужно дать инструкцию к программе. как это обычно делается
и тебе нужно не получить текст, а чтобы во время перетягивания старый текст удалялся?
 
Автор
A

Andrey_A

Продвинутый
Сообщения
319
Репутация
68
joiner сказал(а):
что то я запутался что нужно.

Всё просто.

Изначально была задумка, чтобы бросить текст в GUI окно, получить его и в соответствии с его содержимым изменить информацию в окне. (о чём было написано в 1 посте)

После ваших сообщений стало понятно, что в autoit простыми способами такого сделать невозможно, а только с помощью GuiRichEdit.au3 . Исходя из этого пришлось сделать маленькое окно hRichEdit в одну строку в 10 символов для переброса текста именно туда.

Сейчас необходимо заменять содержимое hRichEdit при перетаскивании, т.к. не могу поймать текст до его вставки в это окошко.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
думаю что через отслеживание событий
WM_NOTIFY - в справке есть пример отслеживания движения указателя мыши по элементам окна.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Andrey_A
Посмотри ещё DragDropEvent от Ward. По крайней мере принцип работы не зависим от hRichEdit, а основан на самом событии drag & drop
 
Автор
A

Andrey_A

Продвинутый
Сообщения
319
Репутация
68
AZJIO сказал(а):
Посмотри ещё DragDropEvent от Ward

Огромнейшее спасибо, то что нужно, почти без проблем всё осуществил!

joiner, так же спасибо! Уже появились пару идей с GuiRichEdit.au3!
 
Верх