Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что стоит за EM_GETSEL 
:(
    Опции темы
Гость_Serj
Дата 27.5.2004, 20:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите как работает так называемое выделение текста мышкой. Програмно, то, что в элемент управления даем SendMessage напр. с параметром EM_GETSEL и иткуда докуды выделить это понятно, но меня интересует что происходит внутри, почему происходит выделение( какими функциями...) и как програмно выделить нужный кусок текста в окне, которое не ловит сообщения на подобие EM_GETSEL. Например в окне кода компилятора VC++.
Спасибо!
  Вверх
Baa
Дата 27.5.2004, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 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
PM ICQ   Вверх
Гость_Serj
Дата 29.5.2004, 10:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не работает ни с PostMessage, ни с SendMessage. Ничего не происходит???
  Вверх
Baa
Дата 29.5.2004, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



А ты уверен, что получил дескриптор окна? Что это именно то окно.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
AndyY
Дата 29.5.2004, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.5.2004
Где: СПб

Репутация: 2
Всего: 4



EM_GETSEL - это сообщение обрабатывает только окна класса EDIT (и некоторые наследованные от них). Естественно, оконо студии - не обычный edit, и реагировать на подобные сообщения не обязано.

Я представляю 2 пути корректной работы со студией - используя OleAutomation или написав собственный плагин для нее.
Примеры плагина есть на CD, а automation можно легко выяснить записав нужную последовательность действий в макрос.

для примера - выделение нескольких строк:
ActiveDocument.Selection.LineUp dsMove, 2
ActiveDocument.Selection.LineDown dsExtend, 5



--------------------
PM MAIL WWW   Вверх
Гость_Serj
Дата 29.5.2004, 20:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Примеры плагина есть на CD, а automation можно легко выяснить записав нужную последовательность действий в макрос.

А есть ли где примеры этого всего, чтобы посмотреть , а то я даже представления не имею как это!!??

  Вверх
AndyY
Дата 29.5.2004, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.5.2004
Где: СПб

Репутация: 2
Всего: 4



шаблон примера для студии 6:
вызвать File/New/Projects
выбрать тип создаваемого проекта:
dev studio add-in wizard
дать название, создать.

дальше - в msdn, index
automating tasks in Developer Studio
там довольно много всего, стоит выборочно почитать.

а в чем задача-то? может есть более простое решение?


--------------------
PM MAIL WWW   Вверх
Гость_Serj
Дата 30.5.2004, 18:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне надо работать с бухгалтерской программой 1С. Класс окна конфигуратора этой проги как и в студии. А задача: прочитать строку в лево (до начала строки) от позиции каретки. Т.к. я работаю в чужом(1С) процессе, то надо выделить эту строку потом скопировать. Я тут уже приводил способ как выделить, но к сожалению никто не ответил thumbs-up.gif . Вот и хочу узнать внутренние механизмы, работающие после посылки сообщений типа EM_GETSEL, EM_SETSEL. Может они помогут найти более простое и симпатичное решение!!
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.