reachedit активация и выбор текста в один клик
От: Pavel Mosunov Россия  
Дата: 18.07.11 14:17
Оценка:
всем привет.
Вопрос в следующем. Если CReachEdit неактивен, то первым кликом мышки сначало нужно его активировать, вторым только начинать выделять текст. Можно ли заставить его работать в один клик — навел на контрол, нажал мышь — контрол активироватся, выделил текст, отпустил мышь. Именно так работает простой CEdit.
Re: reachedit активация и выбор текста в один клик
От: Carc Россия http://www.amlpages.com/home.php
Дата: 19.07.11 06:29
Оценка:
Здравствуйте, Pavel Mosunov, Вы писали:

PM>всем привет.

PM>Вопрос в следующем. Если CReachEdit неактивен, то первым кликом мышки сначало нужно его активировать, вторым только начинать выделять текст. Можно ли заставить его работать в один клик — навел на контрол, нажал мышь — контрол активироватся, выделил текст, отпустил мышь. Именно так работает простой CEdit.
Видимо, можно.
В момент получения фокуса послать RichEdit`у сообщение WM_LBUTTONDBLCLK — по идее это выделит слово (хотя автовыделение слова\абзаца\текста по двойному щелчку можно и включать\отключать в RichEdit).
Только к чему такие велосипеды? Активируем любой другой контрол, тащим мыша на RichEdit и начинаем выделять текст — все вроде и так работает.
Aml Pages Home
Re[2]: reachedit активация и выбор текста в один клик
От: Pavel Mosunov Россия  
Дата: 19.07.11 11:32
Оценка:
Здравствуйте, Carc, Вы писали:

C>Здравствуйте, Pavel Mosunov, Вы писали:


PM>>всем привет.

PM>>Вопрос в следующем. Если CReachEdit неактивен, то первым кликом мышки сначало нужно его активировать, вторым только начинать выделять текст. Можно ли заставить его работать в один клик — навел на контрол, нажал мышь — контрол активироватся, выделил текст, отпустил мышь. Именно так работает простой CEdit.
C>Видимо, можно.
C>В момент получения фокуса послать RichEdit`у сообщение WM_LBUTTONDBLCLK — по идее это выделит слово (хотя автовыделение слова\абзаца\текста по двойному щелчку можно и включать\отключать в RichEdit).
C>Только к чему такие велосипеды? Активируем любой другой контрол, тащим мыша на RichEdit и начинаем выделять текст — все вроде и так работает.

мне нужно не слово выделять, а любой текст.
reachedit работает так:
неактивный reachedit — наводим на него мышку — нажимаем кнопку мыши — reachedit активируется, но выделить текст нельзя. Для выделения нужно отпустить кнопку мыши, а потом опять нажать, выделить текст, отпустить.
кстати ms word и ms write работают также. Простой же edit позволяет сразу выделить текст в неактивном edit-e. Вот такого поведения и хотелось бы добиться...
Re[3]: reachedit активация и выбор текста в один клик
От: Carc Россия http://www.amlpages.com/home.php
Дата: 19.07.11 11:40
Оценка:
Здравствуйте, Pavel Mosunov, Вы писали:

PM>Здравствуйте, Carc, Вы писали:


C>>Здравствуйте, Pavel Mosunov, Вы писали:


PM>>>всем привет.

PM>>>Вопрос в следующем. Если CReachEdit неактивен, то первым кликом мышки сначало нужно его активировать, вторым только начинать выделять текст. Можно ли заставить его работать в один клик — навел на контрол, нажал мышь — контрол активироватся, выделил текст, отпустил мышь. Именно так работает простой CEdit.
C>>Видимо, можно.
C>>В момент получения фокуса послать RichEdit`у сообщение WM_LBUTTONDBLCLK — по идее это выделит слово (хотя автовыделение слова\абзаца\текста по двойному щелчку можно и включать\отключать в RichEdit).
C>>Только к чему такие велосипеды? Активируем любой другой контрол, тащим мыша на RichEdit и начинаем выделять текст — все вроде и так работает.

PM>мне нужно не слово выделять, а любой текст.

PM>reachedit работает так:
PM>неактивный reachedit — наводим на него мышку — нажимаем кнопку мыши — reachedit активируется, но выделить текст нельзя. Для выделения нужно отпустить кнопку мыши, а потом опять нажать, выделить текст, отпустить.
PM>кстати ms word и ms write работают также. Простой же edit позволяет сразу выделить текст в неактивном edit-e. Вот такого поведения и хотелось бы добиться...
1) Какая версия RichEdit используется? Они весьма и весьма разные между собой, начиная с версии 2.0 и заканчивая версией 7.0...

2) Что означает "неактивный RichEdit" — не имеет фокуса ввода, но само приложение активно (foreground process), или и приложение также неактивно.
Если фокус ввода стоит в том же потоке, но в другом контроле — то выделять мышью текст сразу после клика вполне получается.
А вот если фокус ввода вообще в другом приложении — то нет. Но это скорее другой вопрос вообще.

3) Стиль SES_NOHIDESEL выставлен в RichEdit?
Aml Pages Home
Re[3]: reachedit активация и выбор текста в один клик
От: LGB Канада  
Дата: 19.07.11 14:14
Оценка:
Здравствуйте, Pavel Mosunov, Вы писали:

PM>reachedit работает так:


В Windows нет такого контрола — reachedit. Его настоящее имя — RichEdit.
Re[4]: reachedit активация и выбор текста в один клик
От: Pavel Mosunov Россия  
Дата: 20.07.11 06:53
Оценка:
Здравствуйте, Carc, Вы писали:

C>1) Какая версия RichEdit используется? Они весьма и весьма разные между собой, начиная с версии 2.0 и заканчивая версией 7.0...


2.0

C>2) Что означает "неактивный RichEdit" — не имеет фокуса ввода, но само приложение активно (foreground process), или и приложение также неактивно.

C>Если фокус ввода стоит в том же потоке, но в другом контроле — то выделять мышью текст сразу после клика вполне получается.
C>А вот если фокус ввода вообще в другом приложении — то нет. Но это скорее другой вопрос вообще.

приложение так же неактивно.
Если все еще не понятно о чем я, попробуйте так. Открываете два ворда, чтобы оба окна были рядом. Набираете тексты. Потом пробуете мышкой выделить текст в неактивном ворде.
Потом так же сделайте с двумя notepad-ми. Чуете разницу??

C>3) Стиль SES_NOHIDESEL выставлен в RichEdit?


нет, но к чему он? судя по документации этот стиль просто позволяет оставлять видимый селекшэн при потере фокуса. Хотя попробую...
Re[5]: reachedit активация и выбор текста в один клик
От: Carc Россия http://www.amlpages.com/home.php
Дата: 22.07.11 07:02
Оценка:
Здравствуйте, Pavel Mosunov, Вы писали:

PM>Здравствуйте, Carc, Вы писали:


C>>1) Какая версия RichEdit используется? Они весьма и весьма разные между собой, начиная с версии 2.0 и заканчивая версией 7.0...


PM>2.0


C>>2) Что означает "неактивный RichEdit" — не имеет фокуса ввода, но само приложение активно (foreground process), или и приложение также неактивно.

C>>Если фокус ввода стоит в том же потоке, но в другом контроле — то выделять мышью текст сразу после клика вполне получается.
C>>А вот если фокус ввода вообще в другом приложении — то нет. Но это скорее другой вопрос вообще.

PM>приложение так же неактивно.

PM>Если все еще не понятно о чем я, попробуйте так. Открываете два ворда, чтобы оба окна были рядом. Набираете тексты. Потом пробуете мышкой выделить текст в неактивном ворде.
PM>Потом так же сделайте с двумя notepad-ми. Чуете разницу??
Причем тут Ворд? Он не использует RichEdit никаким боком.
Причем тут Notepad? Он также не использует RichEdit никаким боком.
Разницу чувствовать лучше на RichEdit все-таки... И на большинстве их она как правило заметна.

C>>3) Стиль SES_NOHIDESEL выставлен в RichEdit?


PM>нет, но к чему он? судя по документации этот стиль просто позволяет оставлять видимый селекшэн при потере фокуса. Хотя попробую...

Рехех, стили и сообщения RichEdit далеко не во всех версиях соответствуют той самой "хваленной документации", а частенько она еще и врет, про совместимость уж и вовсе молчу. Этот стиль может быть просто полезен при тестировании, чтобы видеть результат.
Aml Pages Home
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.