Здравствуйте, jyuyjiyuijyu, Вы писали:
J>Всем привет
J>есть два окна "Internet Explorer_Server"
J>верхнее просто отображает хтмл без функций редактирования
J>нижнее переведено в режим DesignMode = On типичный WYSIWYG
J>вопрос как сделать чтоб при клике в верхнем окне не исчезала каретка
J>в нижнем окне ? таким образом чтобы при наборе текста он всегда начинал
J>вводится в нижнее окно...
J>в верхнем окне можно выделять текст при этом каретка должна быть в нижнем окне...
J>попробовал возвращать MA_NOACTIVATE работает только когда кликаеш по скроллу...
J>если же кликнуть внутри окна или зажать мыш и начать выделять текст то каретка из нижнего
J>окна тут же пропадает и фокус ввода переносится в верхнее окно...
J>как победить сабж ?
J>спасибо
Перебрасывать фокус ввода в нижнее окно ручками по какому-то событию!?! Окончанию выделения текста в верхнем, например!?!
Здравствуйте, Carc, Вы писали:
C>Перебрасывать фокус ввода в нижнее окно ручками по какому-то событию!?! Окончанию выделения текста в верхнем, например!?!
это то можно... но я хочу чтоб каретка
вообще не исчезала из нижнего окна при любых действиях с верхним окном...
Здравствуйте, jyuyjiyuijyu, Вы писали:
J>Здравствуйте, Carc, Вы писали:
C>>Перебрасывать фокус ввода в нижнее окно ручками по какому-то событию!?! Окончанию выделения текста в верхнем, например!?!
J>это то можно... но я хочу чтоб каретка вообще не исчезала из нижнего окна при любых действиях с верхним окном...
Не уверен, что это получится, т.к. фокус ввода все-таки уходит в другое окно. Но можно попробовать при потере фокуса нижним окном сделать ему ShowCaret(hwnd_нижнего_окна).
Только если это WebBrowser — то вряд ли этой пройдет. Он там сам как-то рулит положением и отображением каретки по HTML-контролам. А попытка поставить каретку всему окну веб-браузера скорее всего просто покажет ее в верхнем левом углу всего окна, вне привязки всяких HTML-контролов и самой веб-страницы. По крайней мере мои танцы с бубном с кареткой в веб-браузере частенько приводили именно к этому.
C>Не уверен, что это получится, т.к. фокус ввода все-таки уходит в другое окно. Но можно попробовать при потере фокуса нижним окном сделать ему ShowCaret(hwnd_нижнего_окна).
PS: только в этом случае все равно нужно аккуратно проверять кто-же на самом деле в момент Икс владеет кареткой. Там далеко не все так тривиально как может показаться на первый взгляд. Копать в сторону
GetGUIThreadInfo + GUI_CARETBLINKING. Есть там всякие нюансы, особенно для контролов, которые имеют другие дочерние контролы, вроде ComboBox.