Visualizzazione di un cursore

Il sistema visualizza automaticamente il cursore di classe (il cursore associato alla finestra a cui punta il cursore). È possibile assegnare un cursore di classe durante la registrazione di una classe di finestra. L'esempio seguente illustra questo assegnando un cursore handle al membro della struttura WNDCLASS identificata dal parametro wc hCursor.

WNDCL&ASS wc; 
 
/ / Fill la struttura della classe della finestra con parametri che / / descrivere la finestra principale. 
 
WC.Style = NULL;                        / / classe style(s) wc.lpfnWndProc = MainWndProc (WNDPROC); / / finestra procedura wc.cbClsExtra = 0;           / / no wc.cbWndExtra dati aggiuntivi di classe = 0;           / / nessuna finestra a dati extra wc.hInstance = hinst;        / / applicazione che possiede la classe wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);     / / classe icona wc.hCursor = LoadCursor (hinst, MAKEINTRESOURCE(230)); / / classe cursor wc.hbrBackground = GetStockObject(WHITE_BRUSH); / / classe sfondo wc.lpszMenuName = "GenericMenu";               / / classe dal menu wc.lpszClassName = "GenericWClass" / / nome della classe / / registrare la classe finestra. 
 
ritorno RegisterClass(amp;wc) 
 

Quando la classe finestra è registrata, il cursore identificato da 230 in file di definizione delle risorse dell'applicazione sarà il cursore predefinito per tutte le finestre basato sulla classe.

L'applicazione può modificare la struttura del cursore utilizzando la funzione SetCursor e specificando un handle cursore diverso. Tuttavia, quando il cursore si sposta, il sistema ridisegna il cursore di classe presso la nuova sede. Per impedire che il cursore di classe ridisegnate, è necessario elaborare il messaggio WM_SETCURSOR . Ogni volta che il cursore si sposta e mouse di input non è catturato, il sistema invia questo messaggio alla finestra in cui si muove il cursore.

È possibile specificare diversi cursori per diverse condizioni durante l'elaborazione di WM_SETCURSOR. Ad esempio, nell'esempio seguente viene illustrato come visualizzare il cursore hCurs3 ogni volta che il cursore si sposta sopra l'icona di un'applicazione ridotto al minimo.

caso WM_SETCURSOR: / / se la finestra è ridotto al minimo, disegnare il cursore hCurs3. 
    / / Se la finestra non è ridotto al minimo, il valore predefinito di trarre / / cursore (cursore classe). 
 
    Se (IsIconic(hwnd)) {SetCursor(hCurs3); 
        pausa; 
    } 
 

Quando la finestra non è ridotto al minimo, il sistema visualizza il cursore di classe.

È possibile sostituire un cursore di classe utilizzando la funzione SetClassLong . Questa funzione cambia le impostazioni predefinite finestra per tutte le finestre di una determinata classe. Nell'esempio seguente sostituisce il cursore classe esistente con il cursore hCurs2.

/ / Cambiare il cursore per la classe della finestra rappresentata da hwnd. 
 
SetClassLong (hwnd, / / handle di finestra GCL_HCURSOR, / / cambiare il cursore (LONG) hCurs2);   / / nuovo cursore 
 

Per ulteriori informazioni, vedere Classi di finestre e l'Input del Mouse.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index