![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закрасить кнопку, (также вопрос к Ю.ЗОТОВУ) [D4, Win95/98]
Dimaond Cat © (2001-12-18 01:25:00)Создаю кнопку от Tbutton. Хочу сделать ее допустим черного цвета,
b:=Tbutton.Create(self);
with b do
begin
visible:=false;
ParentWindow:=Panel1.Handle;
cursor:=crSizeNS;
b.OnMouseMove:=butmov;
Fillrect(getdc(b.handle),b.ClientRect,7);
fillrect помогает только сначала далее при ее перекрывании другим окном или при ее нажатии она меняет цвет на некий стандартный. Как сделать эту заразу постоянно черной
И к Юрию Зотову, Юрий я посеял твой адрес, и это меня очень удручает, черкни пару слов
Dimaond Cat (2001-12-19 00:41:00) [1]Всем спасибо, помогло исправление стиля окна. обработка сообщений типа wm_paint дает некий результат но с некоторыми ошибками.
nikkie (2001-12-18 19:16:00) [2]мне кажется для изменения внешнего вида кнопки правильнее использовать стиль BS_OWNERDRAW и рисовать в ответ на сообщение WM_DRAWITEM
Юрий Зотов (2001-12-18 15:02:00) [3]Черкну. А по сабжу, есс-но, надо WM_PAINT и/или WM_ERASEBACKGND обрабатывать. А если цвет не должен меняться, то еще проще - в стилях окна прописать черную кисть.
И еще. Fillrect(getdc(b.handle)...) - это плохо. Кто потом этот DC освобождать будет? И как? Хэндла-то уже нет, он же не был запомнен. Вот и идет утечка ресурсов.
Mbo (2001-12-18 06:59:00) [4]так кнопка -наследник от tbutton или все-таки tbutton?
если наследник, в методе Paint закрашивай.