Exibindo um Cursor

O sistema apresenta automaticamente o cursor classe (o cursor associado com a janela para o qual o cursor está apontando). Você pode atribuir um cursor de classe ao registrar uma classe de janela. O exemplo a seguir ilustra isso, atribuindo um identificador cursor para o hCursor membro das WNDCLASS estrutura identificada pelo parâmetro da wc.

WNDCL&ASS wc; 
 
/ / Preencher a estrutura de classe de janela com parâmetros que / / descrever a janela principal. 
 
WC.Style = NULL;                        / / Classe style(s) wc.lpfnWndProc = MainWndProc (WNDPROC); / / janela procedimento wc.cbClsExtra = 0;           / / não por classe de dados extra wc.cbWndExtra = 0;           / / não por janela extra de dados wc.hInstance = hinst;        / / aplicativo que possui o wc.hIcon classe = LoadIcon (NULL, IDI_APPLICATION);     / / classe ícone wc.hCursor = LoadCursor (hinst, MAKEINTRESOURCE(230)); / / Classe cursor wc.hbrBackground = GetStockObject(WHITE_BRUSH); / / classe de fundo wc.lpszMenuName = "GenericMenu";               / / Classe menu wc.lpszClassName = "GenericWClass" / / nome da classe / / registrar a classe janela. 
 
retornar RegisterClass(amp;wc) 

 

Quando a classe de janela é registrada, o cursor identificado por 230 no arquivo de definição de recurso do aplicativo será o cursor padrão para todas as janelas baseado na classe.

Seu aplicativo pode alterar o design do cursor usando o SetCursor função e especificando um identificador cursor diferentes. No entanto, quando o cursor se move, o sistema redesenha o cursor classe no novo local. Para evitar que o cursor classe sendo redesenhado, você deve Processoar a mensagem WM_SETCURSOR . Cada tempo que o cursor se move e entrada mouse não é capturado, o sistema envia esta mensagem para a janela na qual o cursor está se movendo.

Você pode especificar cursores diferentes para diferentes condições durante o processamento de WM_SETCURSOR. Por exemplo, o exemplo a seguir mostra como exibir o cursor de hCurs3 sempre que move o cursor sobre o ícone de um aplicativo minimizado.

caso WM_SETCURSOR: / / se a janela está minimizada, desenhar o cursor hCurs3. 
    / / Se a janela não estiver minimizada, desenhar o padrão / / cursor (cursor de classe). 
 
    se (IsIconic(hwnd)) {SetCursor(hCurs3); 
        quebra; 
    } 

 

Quando a janela não estiver minimizada, o sistema exibe o cursor classe.

Você pode substituir um cursor de classe usando a função SetClassLong . Essa função altera as configurações de janela padrão para Tudo as janelas de uma determinada classe. O exemplo a seguir substitui o cursor classe existente com o cursor para hCurs2.

/ / Alterar o cursor para a classe de janela representado por hwnd. 
 
SetClassLong (hwnd, / / janela identificador GCL_HCURSOR, / / change cursor (longa) hCurs2);   / / novo cursor 

 

Para obter mais informações, consulte Classes de janela e Entrada de Mouse.

Index