Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пререрисовка TCheckBox 
:(
    Опции темы
Rennigth
Дата 10.4.2006, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Всем доброго времени суток.
Вообщем ситуация такая: у CheckBox-а я ловлю WM_PAINT и рисую в зависимости от State свои Bitmap-ы. Но WM_PAINT не приходит например при изменении Enabled или при потере фокуса, а винда все равно перерисовывает его на классический вид. В принципе почти все сообщения я перехватил на которых восстанавливается классический вид но получается все это не красиво, мигания... Вообщем гадость страшная. Понимаю что самый логичный выход это реализовать свой CheckBox, но просто даже стало интересно как правильно и безболезнено можно перерисовать стандартный Виндовый CheckBox?


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Foley
Дата 10.4.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



Rennigth, а ты не пробовал вот так:
Код

constructor TMyControl.Create;
begin
  inherited;
  ControlStyle := ControlStyle + [csOpaque];
end;


PM MAIL ICQ   Вверх
Rrader
Дата 11.4.2006, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



Цитата

как правильно и безболезнено можно перерисовать стандартный Виндовый CheckBox?

На API почти так же, как и стандартный Button smile
http://forum.vingrad.ru/index.php?showtopic=90950
Нативным способом:
http://delphiworld.narod.ru/base/change_checkbox_view.html


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Rennigth
Дата 11.4.2006, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Foley, нет, проблема не в том что он мигает и не красиво отрисовывается а в том что винда перерисовывает его, но ни WM_PAINT, ни CM_INVALIDATE не приходит.

Rrader, Спасибо за ссылку на DW, компонент с некоторыми изменениями мне прекрастно подошел.

Но всеже, почему так происходит:
Цитата
винда перерисовывает его, но ни WM_PAINT, ни CM_INVALIDATE не приходит.




--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Rrader
Дата 12.4.2006, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



Цитата

Но всеже, почему так происходит:

Думаю, что здесь WM_PAINT заменяется WM_DRAWITEM smile


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0947 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.