Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

Как сменить курсор для отдельно взятого 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.039 c
6-1093346198
RaPtoR_1
2004-08-24 15:16
2004.10.31
ftp сервер


6-1092992182
Den
2004-08-20 12:56
2004.10.31
Вопрос, по закачкам, с помощью делфи


14-1097698629
Marser
2004-10-14 00:17
2004.10.31
Андорра-Македония 1:0


1-1097615416
Кто---то
2004-10-13 01:10
2004.10.31
Какой есть ComboBox-образныей компонент для выбора папки ?


6-1093206138
pavia
2004-08-23 00:22
2004.10.31
Теряються данные, как исправить?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский