игры с фокусом
От: jyuyjiyuijyu  
Дата: 14.03.13 21:07
Оценка:
Всем привет

есть два окна "Internet Explorer_Server"

верхнее просто отображает хтмл без функций редактирования
нижнее переведено в режим DesignMode = On типичный WYSIWYG

вопрос как сделать чтоб при клике в верхнем окне не исчезала каретка
в нижнем окне ? таким образом чтобы при наборе текста он всегда начинал
вводится в нижнее окно...

в верхнем окне можно выделять текст при этом каретка должна быть в нижнем окне...

попробовал возвращать MA_NOACTIVATE работает только когда кликаеш по скроллу...
если же кликнуть внутри окна или зажать мыш и начать выделять текст то каретка из нижнего
окна тут же пропадает и фокус ввода переносится в верхнее окно...

как победить сабж ?

спасибо
Re: игры с фокусом
От: Carc Россия https://vk.com/gosha_mazov
Дата: 15.03.13 10:29
Оценка:
Здравствуйте, jyuyjiyuijyu, Вы писали:

J>Всем привет


J>есть два окна "Internet Explorer_Server"


J>верхнее просто отображает хтмл без функций редактирования

J>нижнее переведено в режим DesignMode = On типичный WYSIWYG

J>вопрос как сделать чтоб при клике в верхнем окне не исчезала каретка

J>в нижнем окне ? таким образом чтобы при наборе текста он всегда начинал
J>вводится в нижнее окно...

J>в верхнем окне можно выделять текст при этом каретка должна быть в нижнем окне...


J>попробовал возвращать MA_NOACTIVATE работает только когда кликаеш по скроллу...

J>если же кликнуть внутри окна или зажать мыш и начать выделять текст то каретка из нижнего
J>окна тут же пропадает и фокус ввода переносится в верхнее окно...

J>как победить сабж ?


J>спасибо

Перебрасывать фокус ввода в нижнее окно ручками по какому-то событию!?! Окончанию выделения текста в верхнем, например!?!
Aml Pages Home
Re[2]: игры с фокусом
От: jyuyjiyuijyu  
Дата: 15.03.13 10:41
Оценка:
Здравствуйте, Carc, Вы писали:

C>Перебрасывать фокус ввода в нижнее окно ручками по какому-то событию!?! Окончанию выделения текста в верхнем, например!?!


это то можно... но я хочу чтоб каретка вообще не исчезала из нижнего окна при любых действиях с верхним окном...
Re[3]: игры с фокусом
От: Carc Россия https://vk.com/gosha_mazov
Дата: 15.03.13 11:42
Оценка:
Здравствуйте, jyuyjiyuijyu, Вы писали:

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


C>>Перебрасывать фокус ввода в нижнее окно ручками по какому-то событию!?! Окончанию выделения текста в верхнем, например!?!


J>это то можно... но я хочу чтоб каретка вообще не исчезала из нижнего окна при любых действиях с верхним окном...

Не уверен, что это получится, т.к. фокус ввода все-таки уходит в другое окно. Но можно попробовать при потере фокуса нижним окном сделать ему ShowCaret(hwnd_нижнего_окна).

Только если это WebBrowser — то вряд ли этой пройдет. Он там сам как-то рулит положением и отображением каретки по HTML-контролам. А попытка поставить каретку всему окну веб-браузера скорее всего просто покажет ее в верхнем левом углу всего окна, вне привязки всяких HTML-контролов и самой веб-страницы. По крайней мере мои танцы с бубном с кареткой в веб-браузере частенько приводили именно к этому.
Aml Pages Home
Re[4]: игры с фокусом
От: Carc Россия https://vk.com/gosha_mazov
Дата: 15.03.13 11:46
Оценка:
C>Не уверен, что это получится, т.к. фокус ввода все-таки уходит в другое окно. Но можно попробовать при потере фокуса нижним окном сделать ему ShowCaret(hwnd_нижнего_окна).

PS: только в этом случае все равно нужно аккуратно проверять кто-же на самом деле в момент Икс владеет кареткой. Там далеко не все так тривиально как может показаться на первый взгляд. Копать в сторону GetGUIThreadInfo + GUI_CARETBLINKING. Есть там всякие нюансы, особенно для контролов, которые имеют другие дочерние контролы, вроде ComboBox.
Aml Pages Home
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.