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

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

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


Наверх

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