Controles personalizados

Os aplicativos podem criar controles personalizados para executar tarefas não com suporte por controles predefinidos. A API do Win32 fornece as seguintes maneiras para criar controles personalizados:

Usando controles de desenho proprietário

Botões, caixas de listagem e caixas de combinação têm owner-drawn estilos disponíveis que direcionar o controle para enviar uma mensagem para o janela pai sempre que o Controlarar deve ser desenhado. Esse recurso permite que um aplicativo para alterar a aparência de um Controlarar. Para os botões, o estilo owner-drawn afeta como o sistema desenha o Controlarar inteiro. Para caixas de listagem e caixas de combinação, o janela pai desenha os itens dentro do Controlarar e o Controlarar desenha seu próprio contorno. Por exemplo, um aplicativo pode personalizar uma caixa de listagem para que ele exibe um bitmap pequeno ao lado de cada item na lista.

Um aplicativo pode designar botões, caixas de combinação e caixas de listagem como proprietário-desenhadas controles de criá-los com o estilo apropriado. Quando um controle tem o estilo owner-drawn, o sistema processa a interação do usuário com o controle como de costume, executando tarefas como detectar quando um usuário tiver escolhido um botão e notificar o proprietário do botão do evento. Entretanto, porque o Controlarar é proprietário desenhado, a janela pai do Controlarar é responsável para a aparência visual do controle. Para obter mais informações sobre controles de desenho proprietário, consulte owner-drawn botões, caixas de listagem desenhado proprietárioe caixas de combinação owner-drawn.

Subclasses da classe de janela de um controle existente

Subclassificação um Controlarar existente é outra maneira de criar um controle personalizado. O procedimento subclasse pode alterar comportamentos selecionados do Controlarar, processar essas mensagens que afetam os comportamentos selecionados. Todas as outras mensagens passam para o procedimento de janela original para o Controlarar. Por exemplo, um aplicativo pode exibir um bitmap pequeno junto ao texto em um Controlarar somente leitura, single-line editar Subclassificação do Controlarar e processando o mensagem de WM_PAINT . Para obter mais informações, consulte Janela procedimento subclassificação.

Embora um aplicativo pode subclasse um Controlarar predefinido, ele utiliza o procedimento de janela do Controlarar para fornecer a todos os outros aspectos do comportamento do controle. Para obter mais informações sobre o comportamento de um Controlarar, consulte o tópico individual para os controles predefinidos.

Implementando uma classe janela Application-defined

O processo para registrar uma classe janela application-defined para um Controlarar Personalizar é o mesmo que para registrar uma classe para uma janela normal. Para criar um Controlarar Personalizar, especificando o nome da classe janela na CreateWindowEx função ou em um modelo de caixa de diálogo. Cada classe deve ter um nome exclusivo, um correspondente procedimento janela e outras informações.

No mínimo, o procedimento janela desenha o Controlarar. Se um aplicativo usa o controle para permitir que as informações de tipo de usuário, o procedimento janela também processa mensagens de entrada do teclado e do mouse e envia mensagens de notificação para o janela pai. Além disso, se o Controlarar suporta mensagens de controle, o procedimento janela processa as mensagens enviadas a ele pela janela pai ou outras janelas. Por exemplo, controles muitas vezes processam a mensagem WM_GETDLGCODE enviada por caixas de diálogo para direcionar uma caixa diálogo para processar a entrada do teclado em uma determinada maneira.

Index