Комбинация Ctrl+I в RichEdit20A
От: dominik  
Дата: 12.03.10 08:24
Оценка:
Здравствуйте, уважаемые

Столкнулся с такой проблеммой. В диалоговом окне создается RichEdit 2.0 контрол, нужно сделать обработку клавиш Ctrl+B (Bold font), и Ctrl+I (Italic font). Перехватываю сообщение WM_KEYDOWN через EN_MSGFILTER и в зависимости от нажатой комбинации клавиш заполняю структуру CHARFORMAT ну и вызываю EM_SETCHARFORMAT. И вот тут столкнулся с проблеммой: при нажатии комбинации Ctrl+I (которая должна просто сделать Italic шрифт ) в мой RichEdit контрол вставляется символ табуляции. Кто нибудь сталвивался с таким поведением? Как это можно обойти?

Спасибо.

12.03.10 12:43: Перенесено из 'C/C++'
Re: Комбинация Ctrl+I в RichEdit20A
От: dominik  
Дата: 12.03.10 09:39
Оценка:
Здравствуйте, dominik, Вы писали:

D>Здравствуйте, уважаемые


D>Столкнулся с такой проблеммой. В диалоговом окне создается RichEdit 2.0 контрол, нужно сделать обработку клавиш Ctrl+B (Bold font), и Ctrl+I (Italic font). Перехватываю сообщение WM_KEYDOWN через EN_MSGFILTER и в зависимости от нажатой комбинации клавиш заполняю структуру CHARFORMAT ну и вызываю EM_SETCHARFORMAT. И вот тут столкнулся с проблеммой: при нажатии комбинации Ctrl+I (которая должна просто сделать Italic шрифт ) в мой RichEdit контрол вставляется символ табуляции. Кто нибудь сталвивался с таким поведением? Как это можно обойти?


D>Спасибо.


Проблемма решена обработкой WM_CHAR с нажатым TAB_KEY
Re: Комбинация Ctrl+I в RichEdit20A
От: Carc Россия http://www.amlpages.com/home.php
Дата: 12.03.10 11:45
Оценка:
Здравствуйте, dominik, Вы писали:

D>Здравствуйте, уважаемые


D>Столкнулся с такой проблеммой. В диалоговом окне создается RichEdit 2.0 контрол, нужно сделать обработку клавиш Ctrl+B (Bold font), и Ctrl+I (Italic font). Перехватываю сообщение WM_KEYDOWN через EN_MSGFILTER и в зависимости от нажатой комбинации клавиш заполняю структуру CHARFORMAT ну и вызываю EM_SETCHARFORMAT. И вот тут столкнулся с проблеммой: при нажатии комбинации Ctrl+I (которая должна просто сделать Italic шрифт ) в мой RichEdit контрол вставляется символ табуляции. Кто нибудь сталвивался с таким поведением? Как это можно обойти?


D>Спасибо.


Может быть просто вставить в диалог Accelerators Table с Ctrl+B, Ctrl+I и перехватывать эти нажатия непосредственно в CDialog::PreTranslateMessage?
Aml Pages Home
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.