Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Skinned CEdit (mfc)

32K
02 сентября 2008 года
Denis1986
27 / / 25.08.2008
Мне нужно создать скинабельный контрол, наследованный от CEdit. Перед этим я написал скинабельную кнопку (CButton), где каждому из 4-х состояний соответствует своя картинка. Попробовал проскинабелить CEdit по тому же принципу. Всё шло хорошо, пока дело не дошло до непосредственно ввода текста пользователем. В этот момент в обработчике CEdit::OnChar() происходит отрисовка введённого текста и самой строчки, в которую всё это вводится (отрисовка происходит в обход OnPaint()).
Конечно, несложно закоментарить вызов CEdit::OnChar(), но тогда придётся практически переписать контрол CEdit, потому что он должен будет адекватно реагировать на ввод обычных букв/цифр, с shiftом, backspace, delete, нормально отображать выделение мышью введённого текста и удаление выделенного участка и т. д. Я погуглил, но нашёл максимум изменённый фон (одноцветный) для CEdit.
Киньте, пожалуйста, ссылку на скинабельный CEdit или скажите, как проскинабелить его малой кровью :).
14
03 сентября 2008 года
Phodopus
3.3K / / 19.06.2008
"Малой" кровью вряд ли получится. Контролы редактирования текста - самые сложные. Могу порекомендовать лишь подумать про отрисовку на MemDC или невидимое окно или перерисовку после WM_CHAR
32K
04 сентября 2008 года
Denis1986
27 / / 25.08.2008
Я решил рисовать границу (border) толщиной в 2 пикселя из заданной картинки и менять её в зависимости от того, находится курсор мыши над контролом или нет и в зависимости от того, enabled контрол или нет. Начальник разрешил этим ограничиться :).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог