![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сменить курсор для отдельно взятого static [D7, Win95/98, WinXP]
ipnet © (2004-09-20 15:37:00)Как сменить курсор для отдельно взятого static ?
Сделал так:
lc.style := cs_hredraw or cs_vredraw;
lc.lpfnWndProc := @MyLblWndProc;
lc.cbClsExtra := 0;
lc.cbWndExtra := 0;
lc.hInstance := hInstance;
lc.hIcon := ExtractIcon(hInstance,PChar(Paramstr(0)),0);
lc.hCursor := LoadCursor(0,IDC_HAND);
lc.hbrBackground := COLOR_BTNFACE;
lc.lpszMenuName := nil;
lc.lpszClassName := 'static_web';
if RegisterClass(lc) = 0 then halt(0);
lbl1:=CreateWindowEx(0,'static_web','www.site.com', ws_child or ws_visible or ws_tabstop,
46, 5, 66, 13, myWnd,0,hInstance,nil);
UnRegisterClass('static_web',hInstance);
Только вот одного не понял как сделать класс на основе static ?
Потому что созданый static_web текста не отображает, просто белый регион.
ipnet (2004-09-25 15:21:00) [1]SetClassLong(lbl1, GCL_HCURSOR, LoadCursor(hInstance, IDC_HAND));
тоже не помогает
_User_ (2004-09-22 16:22:00) [2]неужели это такой сложный вопрос
ipnet (2004-09-20 18:01:00) [3]продолжение предыдущего кода.
lbl2:=CreateWindowEx (0,'static',' http://www.site.ru',bs_pushbutton or ws_child or ws_visible or ws_tabstop,
46, 23, 90, 15, myWnd,0,hInstance,nil);
///пробовал и так
// Сохранение старой и установка новой оконной процедуры:
stWNDproc:= Pointer(GetWindowLong(lbl1, GWL_WNDPROC));
SetWindowLong(lbl1, GWL_WNDPROC, longint(@MyLblWndProc));
//и так
if not GetClassInfo(hInstance,'static',st_lc) then Halt(0);
stWNDproc:=st_lc.lpfnWndProc;
function MyLblWndProc(wnd: hWnd; msg, wParam,
lParam: longint): longint; stdcall;
begin
case msg of
wm_LButtonDown:
begin
messagebox (mywnd,'запускаем сайт','error',mb_ok);
end;
else Result := CallWindowProc(stWNDproc, wnd, msg, wparam, lparam);
end;
end;
в обоих случаях, при запуске "недопустимая операция".
inic (2004-09-20 16:02:00) [4]Так ?:
1. GetClassInfo - узнаешь адрес WndProc стандартного статика.
2. Регишь свой класс и создаешь экземпляр как ты делаешь.
3. Обрабатываешь в своей вндпрок что тебе надо, а остальные мессаги передаешь в сохранненую ранее вндпрок статика.