Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

wm_ [D7, Win95/98]


tytus ©   (2003-04-28 23:57:00) 

Привет всем кто не спит. Пишу процедуры на сообщение от мышки:
procedure mousedown(var Msg:TWMMouse);message WM_LBUTTONDOWN;
procedure mouseup(var Msg:TWMMouse);message WM_LBUTTONUP;
В имплементе пишу:procedure TMyButton.mousedown(var Msg:TWMMouse);
begin
but.drawdown;
end;
procedure TMYButton.mouseup(var Msg:TWMMouse);
begin
but.drawup;
end;
but - это моя рисованная кнопка. Все что делают drawdown и
drawup - всего лишь перерисовывают компонент. ВОПРОС - когда я часто нажимаю левой кнопкой мыши на компоненте - то в последствии перерисовка происходит не зависимо от того где находиться указатель. А если так нажимать на стандартном button-e, то такое не случаеться. ?????? Может проверять координаты указателя мышки, или как-то использовать CM_MOUSEENTER для компонента?


i-C3H7OH   (2003-04-30 14:44:00) [1]

TMYButton - че за класс? еще but какой-то.... одни кнопки:)

хотим создать нестандартную кнопку?

если на винапи пишем, то создай кнопарь со стилем BS_OWNERDRAW. владелец (именно владелец) этой кнопки будет получать WM_DRAWITEM в обработчике которого и перерисовывай как хочешь. а иначе кнопка сама себя будет "правильно" прорисовывать...


jack128   (2003-04-30 10:13:00) [2]

tytus © (28.04.03 23:57)
как перерисововашь? Invalidate или Refresh? Если Refresh и слабый комп, то это называтся "т-т-т-о-о-о-р-р-м-м-о-з-и-и-т-т" -)


Deus   (2003-04-29 03:08:00) [3]

Ну привет! А TMYButton - это что за класс? Посмотри, кстати, исходники TButton"а. Там всё написано.


Наверх

Титульная страница Поиск, карта сайта Написать письмо