Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];

Вниз

Закрасить кнопку, (также вопрос к Ю.ЗОТОВУ)   Найти похожие ветки 

 
Dimaond Cat   (2001-12-18 01:25) [0]

Создаю кнопку от 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 помогает только сначала далее при ее перекрывании другим окном или при ее нажатии она меняет цвет на некий стандартный. Как сделать эту заразу постоянно черной

И к Юрию Зотову, Юрий я посеял твой адрес, и это меня очень удручает, черкни пару слов


 
Mbo   (2001-12-18 06:59) [1]

так кнопка -наследник от tbutton или все-таки tbutton?
если наследник, в методе Paint закрашивай.


 
Юрий Зотов   (2001-12-18 15:02) [2]

Черкну. А по сабжу, есс-но, надо WM_PAINT и/или WM_ERASEBACKGND обрабатывать. А если цвет не должен меняться, то еще проще - в стилях окна прописать черную кисть.

И еще. Fillrect(getdc(b.handle)...) - это плохо. Кто потом этот DC освобождать будет? И как? Хэндла-то уже нет, он же не был запомнен. Вот и идет утечка ресурсов.


 
nikkie   (2001-12-18 19:16) [3]

мне кажется для изменения внешнего вида кнопки правильнее использовать стиль BS_OWNERDRAW и рисовать в ответ на сообщение WM_DRAWITEM


 
Dimaond Cat   (2001-12-19 00:41) [4]

Всем спасибо, помогло исправление стиля окна. обработка сообщений типа wm_paint дает некий результат но с некоторыми ошибками.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
1-57082
Злой_Гном
2002-02-01 18:12
2002.02.18
Помогите положить ProgressBar в StatusBar.Panels


1-57141
MystiX
2002-02-03 20:26
2002.02.18
Заголовок окна


14-57209
vector
2001-12-29 12:23
2002.02.18
Не могу нормально посмотреть форумы Delphi


4-57241
Alex Y.
2001-12-19 16:14
2002.02.18
драйвер устройства, прерывания


14-57216
Himler
2001-12-29 16:39
2002.02.18
Как узнать содержимое сетевых пакетов.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский