Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.09;
Скачать: CL | DM;

Вниз

BUTTON, STATIC и т.д.   Найти похожие ветки 

 
Юрий Ж. ©   (2003-11-02 11:48) [0]

На форме деляю STATIC и хочу менять его цвет при наведении мыши.
Подскажите какие надо обрабатывать сообжщения и где.
Т.е. в общем вопрос состоит втом как назначить STATIC или BUTTON процедуру обработки сообщений.
Заранее благодарен!
P.S.
Пишу на WinAPI!


 
Opuhshii ©   (2003-11-02 13:26) [1]

"какие надо обрабатывать сообжщения "
WM_MOUSEMOVE,WM_NCHITTEST
"как назначить процедуру обработки сообщений"
GetWindowLong/SetWindowLong


 
Opuhshii ©   (2003-11-02 13:28) [2]

"сообжщения "
WM_PAINT,.... много чего ещё,. ))


 
Nick Denry ©   (2003-11-02 15:37) [3]

Win32 SDK рулит.
Или на русском http://www.soobcha.ru/rushelp


 
Юрий Ж. ©   (2003-11-02 16:24) [4]

А можно пример....


 
DVM ©   (2003-11-02 17:29) [5]

WM_MOUSEMOVE, WM_MOUSELEAVE, WM_PAINT
> Т.е. в общем вопрос состоит втом как назначить STATIC или
> BUTTON процедуру обработки сообщений.

А она уже назначена. Это оконная процедура. Стандартную оконную процедуру надо переопределить на свою и там делай сто хошь.


 
Nick Denry ©   (2003-11-02 18:06) [6]

А можно пример....
Тебе уже и так много чего насоветоввали. ЖМИ F1


 
Юрий Ж. ©   (2003-11-03 00:49) [7]

Если назначаю STATIC процедуру обработки событий (обрабатываю WM_PAINT), то вся прога начинает подвисать.
Вот по-этому и прошу пример(может что не так назначаю или не с теми параметрами).


 
DVM ©   (2003-11-03 14:08) [8]


> Если назначаю STATIC процедуру обработки событий (обрабатываю
> WM_PAINT), то вся прога начинает подвисать.

приведите код, как Вы это делаете.


 
Юрий Ж. ©   (2003-11-03 21:15) [9]


{Процидура обработки сообщений}
function _WindowProc(Wnd:HWND; Msg : Integer; wParam:wParam; lParam:lParam):lResult;stdcall;
begin
WM_PAINT : MessaeBOx(0,"Hi!","www",MB_OK);
Result := DefWindowProc(wnd,msg,wParam,lParam);
end;
........................
St:=CreateWindowEx(0,"STATIC","Привет!",
WS_CHILD or WS_VISIBLE or SS_NOTIFY,0,0, 300,20,Parent,15,hInstance,nil);
SetWindowLong(St,GWL_WNDPROC,DWORD(@_WindowProc));
..........................


 
Suntechnic ©   (2003-11-03 21:42) [10]

>Юрий Ж. ©
Во-первых правильней вызывать не DefWindowProc, а старую процедуру, адрес которой предварительно надо сохранить.

Во-вторых это что ещё за MessaeBOx в теле процедуры? Ты себе хоть на секунду представил сколько сообщений будет послано в твою процедуру? Могу тебе обещать одно: задолбаешься кликать Ok

И последнее, для того чтобы сменить цвет при наведении мышки на контрол WM_PAINT обрабатывать совсем необязательно. WM_MOUSEMOVE + SetCapture(ReleaseCapture) + SetTextColor вполне достаточно.


 
Юрий Ж. ©   (2003-11-06 18:33) [11]

А можно по-конкрутнее про назначение цвета STATIC(примеры и т.д.)
или как пользоваться
WM_MOUSEMOVE + SetCapture(ReleaseCapture) + SetTextColo



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

Текущий архив: 2004.01.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
6-25497
sipliy
2003-11-10 11:32
2004.01.09
Бьются файлы при закачке их на ftp сервер.


4-25665
Скал
2003-11-05 18:30
2004.01.09
регионы RGN


14-25520
SiJack
2003-12-17 16:15
2004.01.09
Какой струйный принтер посоветуете ?


14-25555
tipman
2003-12-18 15:18
2004.01.09
Где взять workshop?


6-25477
Theoden
2003-11-07 18:45
2004.01.09
POP3