всем привет.
Вопрос в следующем. Если CReachEdit неактивен, то первым кликом мышки сначало нужно его активировать, вторым только начинать выделять текст. Можно ли заставить его работать в один клик — навел на контрол, нажал мышь — контрол активироватся, выделил текст, отпустил мышь. Именно так работает простой CEdit.
Re: reachedit активация и выбор текста в один клик
Здравствуйте, Pavel Mosunov, Вы писали:
PM>всем привет. PM>Вопрос в следующем. Если CReachEdit неактивен, то первым кликом мышки сначало нужно его активировать, вторым только начинать выделять текст. Можно ли заставить его работать в один клик — навел на контрол, нажал мышь — контрол активироватся, выделил текст, отпустил мышь. Именно так работает простой CEdit.
Видимо, можно.
В момент получения фокуса послать RichEdit`у сообщение WM_LBUTTONDBLCLK — по идее это выделит слово (хотя автовыделение слова\абзаца\текста по двойному щелчку можно и включать\отключать в RichEdit).
Только к чему такие велосипеды? Активируем любой другой контрол, тащим мыша на RichEdit и начинаем выделять текст — все вроде и так работает.
Здравствуйте, 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 активация и выбор текста в один клик
Здравствуйте, 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), или и приложение также неактивно.
Если фокус ввода стоит в том же потоке, но в другом контроле — то выделять мышью текст сразу после клика вполне получается.
А вот если фокус ввода вообще в другом приложении — то нет. Но это скорее другой вопрос вообще.
Здравствуйте, 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 активация и выбор текста в один клик
Здравствуйте, 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 далеко не во всех версиях соответствуют той самой "хваленной документации", а частенько она еще и врет, про совместимость уж и вовсе молчу. Этот стиль может быть просто полезен при тестировании, чтобы видеть результат.