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

Вниз

Как сменить курсор для отдельно взятого static   Найти похожие ветки 

 
ipnet ©   (2004-09-20 15:37) [0]

Как сменить курсор для отдельно взятого 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 текста не отображает, просто белый регион.


 
inic ©   (2004-09-20 16:02) [1]

Так ?:

1. GetClassInfo - узнаешь адрес WndProc стандартного статика.
2. Регишь свой класс и создаешь экземпляр как ты делаешь.
3. Обрабатываешь в своей вндпрок что тебе надо, а остальные мессаги передаешь в сохранненую ранее вндпрок статика.


 
ipnet ©   (2004-09-20 18:01) [2]

продолжение предыдущего кода.
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;


в обоих случаях, при запуске "недопустимая операция".


 
_User_   (2004-09-22 16:22) [3]

неужели это такой сложный вопрос


 
ipnet ©   (2004-09-25 15:21) [4]

SetClassLong(lbl1, GCL_HCURSOR, LoadCursor(hInstance, IDC_HAND));
тоже не помогает



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1097833779
Артем К.
2004-10-15 13:49
2004.10.31
Как реализовать следующую штуку?


14-1097049783
Holy
2004-10-06 12:03
2004.10.31
Белгородская сходка...


1-1098198225
ROM
2004-10-19 19:03
2004.10.31
циклическая обработка нажатия кнопки


14-1097149732
}|{yk
2004-10-07 15:48
2004.10.31
Пиккардийская терция - супер!


1-1097746852
jenbond
2004-10-14 13:40
2004.10.31
Нужен совет в работе прогораммы