![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
BUTTON, STATIC и т.д. [D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
Юрий Ж. © (2003-11-02 11:48:00)
На форме деляю STATIC и хочу менять его цвет при наведении мыши.
Подскажите какие надо обрабатывать сообжщения и где.
Т.е. в общем вопрос состоит втом как назначить STATIC или BUTTON процедуру обработки сообщений.
Заранее благодарен!
P.S.
Пишу на WinAPI!
Юрий Ж. (2003-11-06 18:33:00) [1]
А можно по-конкрутнее про назначение цвета STATIC(примеры и т.д.)
или как пользоваться
WM_MOUSEMOVE + SetCapture(ReleaseCapture) + SetTextColo
Suntechnic (2003-11-03 21:42:00) [2]
>Юрий Ж. ©
Во-первых правильней вызывать не DefWindowProc, а старую процедуру, адрес которой предварительно надо сохранить.
Во-вторых это что ещё за MessaeBOx в теле процедуры? Ты себе хоть на секунду представил сколько сообщений будет послано в твою процедуру? Могу тебе обещать одно: задолбаешься кликать Ok
И последнее, для того чтобы сменить цвет при наведении мышки на контрол WM_PAINT обрабатывать совсем необязательно. WM_MOUSEMOVE + SetCapture(ReleaseCapture) + SetTextColor вполне достаточно.
Юрий Ж. (2003-11-03 21:15:00) [3]
{Процидура обработки сообщений}
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));
..........................
DVM (2003-11-03 14:08:00) [4]
> Если назначаю STATIC процедуру обработки событий (обрабатываю
> WM_PAINT), то вся прога начинает подвисать.
приведите код, как Вы это делаете.
Юрий Ж. (2003-11-03 00:49:00) [5]
Если назначаю STATIC процедуру обработки событий (обрабатываю WM_PAINT), то вся прога начинает подвисать.
Вот по-этому и прошу пример(может что не так назначаю или не с теми параметрами).
Nick Denry (2003-11-02 18:06:00) [6]
А можно пример....
Тебе уже и так много чего насоветоввали. ЖМИ F1
DVM (2003-11-02 17:29:00) [7]
WM_MOUSEMOVE, WM_MOUSELEAVE, WM_PAINT
> Т.е. в общем вопрос состоит втом как назначить STATIC или
> BUTTON процедуру обработки сообщений.
А она уже назначена. Это оконная процедура. Стандартную оконную процедуру надо переопределить на свою и там делай сто хошь.
Юрий Ж. (2003-11-02 16:24:00) [8]
А можно пример....
Nick Denry (2003-11-02 15:37:00) [9]
Win32 SDK рулит.
Или на русском http://www.soobcha.ru/rushelp
Opuhshii (2003-11-02 13:28:00) [10]
"сообжщения "
WM_PAINT,.... много чего ещё,. ))
Opuhshii (2003-11-02 13:26:00) [11]
"какие надо обрабатывать сообжщения "
WM_MOUSEMOVE,WM_NCHITTEST
"как назначить процедуру обработки сообщений"
GetWindowLong/SetWindowLong