![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Гость_Serj |
|
|||
|
Unregistered |
Подскажите как работает так называемое выделение текста мышкой. Програмно, то, что в элемент управления даем SendMessage напр. с параметром EM_GETSEL и иткуда докуды выделить это понятно, но меня интересует что происходит внутри, почему происходит выделение( какими функциями...) и как програмно выделить нужный кусок текста в окне, которое не ловит сообщения на подобие EM_GETSEL. Например в окне кода компилятора VC++.
Спасибо! |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
В окне студии не ловит потому, что оно поддерживает размер больше, чем 64К (т.е. если надо выделить дальше 64кб)
В него стоит посылать EM_EXGETSEL (EM_EXSETSEL) или ты пытаешься выделять сообщением EM_GETSEL? Хм, тогда ты явно обречен на неудачу. Выделение-то EM_SETSEL. На работает с SendMessage, тогда используй PostMessage. -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Гость_Serj |
|
|||
|
Unregistered |
Не работает ни с PostMessage, ни с SendMessage. Ничего не происходит???
|
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
А ты уверен, что получил дескриптор окна? Что это именно то окно.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| AndyY |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 2 Всего: 4 |
EM_GETSEL - это сообщение обрабатывает только окна класса EDIT (и некоторые наследованные от них). Естественно, оконо студии - не обычный edit, и реагировать на подобные сообщения не обязано.
Я представляю 2 пути корректной работы со студией - используя OleAutomation или написав собственный плагин для нее. Примеры плагина есть на CD, а automation можно легко выяснить записав нужную последовательность действий в макрос. для примера - выделение нескольких строк: ActiveDocument.Selection.LineUp dsMove, 2 ActiveDocument.Selection.LineDown dsExtend, 5 |
|||
|
||||
| Гость_Serj |
|
|||
|
Unregistered |
А есть ли где примеры этого всего, чтобы посмотреть , а то я даже представления не имею как это!!?? |
|||
|
||||
| AndyY |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 2 Всего: 4 |
шаблон примера для студии 6:
вызвать File/New/Projects выбрать тип создаваемого проекта: dev studio add-in wizard дать название, создать. дальше - в msdn, index automating tasks in Developer Studio там довольно много всего, стоит выборочно почитать. а в чем задача-то? может есть более простое решение? |
|||
|
||||
| Гость_Serj |
|
|||
|
Unregistered |
Мне надо работать с бухгалтерской программой 1С. Класс окна конфигуратора этой проги как и в студии. А задача: прочитать строку в лево (до начала строки) от позиции каретки. Т.к. я работаю в чужом(1С) процессе, то надо выделить эту строку потом скопировать. Я тут уже приводил способ как выделить, но к сожалению никто не ответил
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |