Afișarea un Cursor

Sistemul afișează automat cursorul de clasa (cursorul asociate cu fereastra în care este îndreptat cursorul). Aveți posibilitatea să asociați un cursor de clasă în timp ce înregistrarea o clasă de Ferestre. Următorul exemplu ilustrează acest lucru asociind un mâner cursorul membru hCursor structurii WNDCLASS identificate de parametrul wc.

WNDCL&ASS wc; 
 
/ / Umple fereastra clasa structura cu parametri care / / descrie fereastra principală. 
 
WC.style = NULL;                        / / Clasa style(s) wc.lpfnWndProc = MainWndProc (WNDPROC); / / fereastra procedura wc.cbClsExtra = 0;           / / nu pe-clasa date suplimentare wc.cbWndExtra = 0;           / / nu pe-fereastra date suplimentare wc.hInstance = hinst;        / / cerere care deține wc.hIcon clasa = LoadIcon (NULL, IDI_APPLICATION);     / / Clasa icon wc.hCursor = LoadCursor (hinst, MAKEINTRESOURCE(230)); / / Clasa cursorul wc.hbrBackground = GetStockObject(WHITE_BRUSH); / / Clasa fundal wc.lpszMenuName = "GenericMenu";               / / Clasa meniul wc.lpszClassName = "GenericWClass" / / clasa nume / / Inregistreaza clasa fereastra. 
 
return RegisterClass(amp;wc) 

 

Atunci când se înregistrează clasa fereastra, cursorul identificate de 230 din resurse-definiție a aplicației va fi cursorul implicit pentru toate windows bazate pe clasa.

Aplicația poate schimba design cursorului utilizând funcția SetCursor și specificând un mâner cursorul diferite. Cu toate acestea, atunci când se mută cursorul, sistemul redesenează cursorul de clasa la noua locație. Pentru a preveni fiind redesenează cursorul de clasa, trebuie să prelucreze mesaj WM_SETCURSOR . Fiecare timp cursorul se mută și mouse-ul de intrare nu este capturat, sistemul trimite acest mesaj în fereastra în care cursorul este în mișcare.

Aveți posibilitatea să specificați cursoare diferite pentru diferite condiții în timp ce WM_SETCURSOR de prelucrare. De exemplu, următorul exemplu arată cum se afișează cursorul hCurs3 ori de câte ori mută cursorul peste pictograma unei cereri minimizată.

caz WM_SETCURSOR: / / dacă fereastra este minimizată, trage cursorul de hCurs3. 
    / / Dacă nu este minimizat fereastra, trage implicit / / cursorul (clasa cursorul). 
 
    Dacă (IsIconic(hwnd)) {SetCursor(hCurs3); 
        pauză; 
    } 

 

Atunci când fereastra nu este minimizată, sistemul afișează cursorul de clasă.

Aveți posibilitatea să înlocuiți un cursor de clasă utilizând funcția SetClassLong . Această funcție modifică fereastra implicit setările pentru toate ferestrele de o clasă. Următorul exemplu înlocuiește cursorul de clasă existente cu cursorul hCurs2.

/ / Schimba cursorul pentru clasa fereastra reprezentată de hwnd. 
 
SetClassLong (hwnd, / / fereastra ocupa GCL_HCURSOR, / / schimba cursorul (lung) hCurs2);   / / new cursorul 

 

Pentru mai multe informații, consultați Fereastra clase și Intrare mouse-ul.

Index