Pergunta

Estou construindo um controle/widget win32 personalizado e gostaria de mudar o cursor para um símbolo de "divisor" horizontal ao passar o mouse sobre uma linha vertical específica no controle.Ou seja:Quero arrastar esta linha vertical (barra divisora) para a esquerda e para a direita (OESTE e LESTE).

Dos cursores do sistema (OCR_*), o único cursor que faz sentido é o OCR_SIZEWE.Infelizmente, esse é o cursor grande e estranho que o sistema usa ao redimensionar uma janela.Em vez disso, estou procurando o cursor com cerca de 20 pixels de altura e cerca de 3 ou 4 pixels de largura, com duas pequenas setas apontando para a esquerda e para a direita.

Posso desenhar isso facilmente e incluí-lo como um recurso em meu aplicativo, mas o cursor em si é tão predominante que eu queria ter certeza de que não estava faltando alguma coisa.

Por exemplo:quando você usa o mecanismo de arrastar e soltar COM (CLSID_DragDropHelper, IDropTarget, etc), você implicitamente tem acesso ao ícone "arrastar" (caixa abaixo do ponteiro).Não vi uma constante OCR_* explícita para esse cara...da mesma forma, se não conseguir encontrar esse cursor divisor imediatamente, estou me perguntando se ele faz parte de um objeto COM ou algo mais na biblioteca win32.

Foi útil?

Solução

Existem todos os tipos de ícones, cursores e imagens em uso na interface do usuário do Windows que não estão disponíveis publicamente para software de terceiros.Claro, você ainda pode carregar o módulo em que eles residem e usá-los, mas não há garantia de que seu programa continuará funcionando após uma atualização/atualização do sistema.

Inclua o seu próprio.A última coisa que você deseja é adicionar uma dependência extra sobre um minúsculo cursor.

Outras dicas

Eu tive esse problema exato.Quando olhei para trás em algum código antigo para um divisor vertical pensando que tinha uma resposta fácil, descobri que eu havia construído e carregado meu próprio recurso:

SetCursor( LoadCursor( ghInstance, "IDC_SPLITVERT" ));

Lembro-me vagamente de investir algum tempo e esforço consideráveis ​​para encontrar a maneira do sistema de fazer isso, então (meu palpite) é que não existe um ÍCONE do sistema prontamente disponível para fazer o trabalho, então é melhor você criar o seu próprio.

Este é um daqueles momentos em que gostaria de estar errado, pois gostaria que houvesse um ícone de sistema para este trabalho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top