Criar um controle do Windows Forms (C++)

Windows Forms controls are components that can be added to Windows Forms applications (GUI applications that target the common language runtime). Windows Forms applications in Visual C++ use .NET Framework classes and other .NET features with the new Visual C++ syntax.

Neste procedimento, você pode criar um controle Windows Forms que exibe um número. Esse número é incrementado cada vez que um usuário clica o rótulo em um aplicativo. Você também irá criar um projeto de aplicativo do Windows Forms para testar o controle.

This walkthrough covers the following:

  • Criar um novo projeto.

  • Projetando o controle.

  • Adicionando uma propriedade personalizada para o controle.

  • Adicionando um projeto para testar o controle.

  • Colocando o controle em um aplicativo.

  • Executar o aplicativo.

Pré-requisitos

This topic assumes that you understand the fundamentals of the C++ language. Se apenas começar C++ de aprendizagem, recomendamos que o "guia para iniciantes do C++", escrito por Herb Schildt, disponível online em https://go.microsoft.com/fwlink/?LinkId=115303.

link para vídeo Para obter uma versão de vídeo deste tópico, consulte vídeo How to: Criar um controle do Windows Forms (C++).

Create a New Project

O modelo de projeto de controle Windows Forms que você use desta seção cria um controle de usuário é um controle composto que contém outros controles.

Como alternativa, você pode criar um controle Windows Forms derivando uma classe diretamente a partir do Control classe (seu código é responsável por desenhar o controle) ou o Component (um controle que não tem nenhuma interface do usuário) da classe.

Para criar um novo projeto de controle do Windows Forms

  1. Do arquivo menu, clique em novae em seguida, clique em projeto ….

  2. No Tipos de projeto painel, selecione CLR na Visual C++ nó e selecione Windows Forms Control Library na Visual Studio installed templates painel.

    Digite um nome para o projeto, como, por exemplo, clickcounter.

    Digite um nome diferente para a solução, como, por exemplo, controlandtestapp.

    Você pode aceitar o local padrão, digite um local em que você deseja, ou navegue para um diretório onde você deseja salvar o projeto.

  3. O Windows Forms Designer abre e mostra uma área para onde você adicionar os controles que você deseja posicionar na superfície de design do controle.

O controle de design.

Nesta etapa, você adicionar um Label o controle para a superfície de design do controle. Em seguida, definir algumas propriedades no próprio controle e no Label controle que ele contém.

Para definir as propriedades de um controle de usuário

  1. Se você não vir o Propriedades janela, da Exibir menu, clique em A janela de propriedades.

    No Windows Forms Designer, clique no controle para selecioná-lo e definir suas propriedades da seguinte maneira:

    • Definir o tamanho propriedade para 100, 100.

    • Definir o BorderStyle para Fixed3D

      Os limites de rótulo ficará visíveis depois de posicionar o controle em um aplicativo.

  2. Se o caixa de ferramentas janela não estiver visível, selecione Toolbox da Exibir menu.

    Arrastar um Label de controle da Toolbox no design de superfície e posicione-o próximo ao meio do controle.

    Defina essas propriedades para o rótulo:

    • Definir o BorderStyle para FixedSingle.

    • Definir o texto para o dígito 0 (zero).

    • Definir o Autosize para False.

    • Definir o tamanho para 30, 20.

    • Definir o TextAlign para MiddleCenter.

    Deixe o nome propriedade (como você se referir a ele no código) inalterada como label1. O controle deve ser semelhante ao seguinte:

    O layout do controle

  3. Adicione um manipulador para o rótulo de Click o evento (o evento padrão de um rótulo), clicando duas vezes no rótulo.

  4. O clickcounter.harquivo é exibido na área de edição com um método do manipulador de evento vazios.

    ObservaçãoObservação

    Se você precisar de mais espaço, feche o caixa de ferramentas ou Propriedades janela clicando na caixa Fechar apropriada ou fazendo o unpin a janela para que ele auto-oculta.

  5. Mova o cursor para depois da chave de abertura da label1_Click método, pressione Enter e digite:

    int temp = System::Int32::Parse(label1->Text);
    temp++;
    label1->Text = temp.ToString();
    

    IntelliSense exibe uma lista de opções válidas após digitar um operador de resolução de escopo (::), ponto (.) do operador ou o operador de seta (->). Realce um item e pressione Tab ou Enter ou clique duas vezes em um item para inserir o item no seu código.

    Além disso, quando você digita um parêntese de abertura para um método, o Visual Studio exibe os tipos de argumento válido para cada sobrecarga do método.

Adicionar uma propriedade personalizada para o controle

Nesta etapa, você pode definir uma propriedade personalizada que determina se o número que é exibido no controle incrementa quando um usuário clica o rótulo ou quando um usuário clica em qualquer local no controle.

Para adicionar uma propriedade personalizada para um controle

  1. Coloque o cursor após a vírgula do primeiro public indicador de escopo, public:, na parte superior do clickcounterControl.h de arquivo, pressione Enter e, em seguida, digite o seguinte:

    property bool ClickAnywhere {
        bool get() {
            return (label1->Dock == DockStyle::Fill);
        }
        void set(bool val) {
            if (val) 
                label1->Dock = DockStyle::Fill;
            else 
                label1->Dock = DockStyle::None;
        }
    }
    

    Ao definir o ClickAnywhere a propriedade do controle para true, o Dock a propriedade do rótulo é definida como DockStyle::Fill, e o rótulo preenche toda a superfície de controle. Um clique em qualquer lugar na superfície de controle, em seguida, fará com que um rótulo de Click o evento, que incrementa o número da etiqueta.

    Quando o ClickAnywhere é a propriedade false (padrão), o Dock a propriedade do rótulo é definida como DockStyle::None. O rótulo não preenche o controle e um clique no controle deverá estar dentro dos limites de rótulo para fazer com que um rótulo Click o evento, que incrementa o número.

  2. Cria o controle de usuário. Sobre o Build menu, selecione Build Solution.

    Se não houver nenhum erro, um controle Windows Forms é gerado com um nome de arquivo de clickcounter.dll. Você pode localizar esse arquivo na estrutura de diretório do projeto.

Adicionar um projeto para testar o controle

Nesta etapa, você pode criar um projeto de aplicativo do Windows Forms no qual você irá posicionar instâncias do controle clickcounter em um formulário.

ObservaçãoObservação

Você pode escrever o aplicativo do Windows Forms que você criar para testar o controle com o Visual C++ ou outra.NET linguagem, como, por exemplo, C# ou Visual Basic.

Para criar um projeto de aplicativo do Windows Forms

  • Do arquivo menu, selecione novae em seguida, clique em projeto ….

Você também pode adicionar um projeto à solução porclicando com o botão direito a solução de controlandtestappna Solution Explorer, apontando para Adicionar, eem Novo projeto ….

  1. No Tipos de projeto painel, selecione CLR na Visual C++ nó e selecione Aplicativo do Windows Forms na Visual Studio installed templates painel.

    Digite um nome para o projeto, como, por exemplo, testapp.

    Certifique-se de selecionar Adicionar a solução em vez de aceitar o padrão Criar nova solução definição na solução na lista suspensa e clique OK.

  2. O Windows Forms Designer abre de novo projeto e mostra um novo formulário chamado Form1 como na Figura:

    Um formulário recém-criado

Para adicionar um controle à caixa de ferramentas

  1. Adicione uma referência ao controle. Clique com o botão direito no projeto testapp na Solution Explorer e clique em referências.

    Clique o Adicionar nova referência botão, clique o projetos guia (você está adicionando uma referência a outro projeto nesta solução) e em seguida, selecione o projeto de clickcounter. Clique em OK duas vezes.

  2. Se você não conseguir ver o caixa de ferramentas janela, selecione Toolbox da Exibir menu.

  3. Se você não conseguir localizar o controle de clickCounter na caixa de ferramentas com uma engrenagem"" ícone, em seguida, clique com botão direito do caixa de ferramentas e clique em Escolher itens.

    Clique o Procurar botão e localize o clickcounter.dll o arquivo em sua estrutura de diretório de solução. Selecione-o e clique em Abrir.

    O clickcounter controle é mostrado na**.NET Framework Components** lista com uma marca de seleção. Click OK.

    O controle aparece no caixa de ferramentas com a engrenagem"padrão" ícone.

Colocar o controle em um aplicativo

Nesta etapa, você pode coloca duas instâncias do controle em um formulário do aplicativo e definir suas propriedades.

Para colocar as instâncias de um controle em um formulário.

  1. Arraste duas instâncias do controle de clickcounter a caixa de ferramentas. Colocá-los no formulário para que eles não se sobreponham.

    Se você quiser tornar o formulário mais largo, clique no formulário para selecioná-la e arraste uma das alças de seleção para fora.

  2. Se você não vir o Propriedades janela, selecione Propriedades da Exibir menu.

    O ClickAnywhere é de propriedade no diversos seção a Janela de propriedade (se as propriedades são organizadas por categoria).

  3. Clique em uma instância do controle clickcounter no formulário para selecioná-lo e, em seguida, defina sua ClickAnywhere propriedade para true.

  4. Deixe o ClickAnywhere a propriedade da instância do controle clickcounter definida como false (padrão).

  5. Clique com o botão direito do projeto de TestApp no Solution Explorer e selecione Como projeto de inicialização.

  6. Do Build menu, selecione Rebuild Solution.

    Você verá que os dois projetos criados sem erros.

Run the Application

Nesta etapa, você deve executa o aplicativo e clique nos controles para testá-los.

To test the application

  1. From the Debug menu, select Start Debugging.

    O formulário aparece com duas instâncias do controle visível.

  2. Execute o aplicativo e clique em ambos os controles de clickcounter:

    • Clique no controle com ClickAnywhere definido como true.

      O número na etiquetaincrementos quando você clica em qualquer lugar no controle.

    • Clique no controle com ClickAnywhere definido como false.

      O número na etiqueta incrementa apenas quando você clica dentro do limite visível do rótulo. A captura de tela a seguir mostra a aparência do aplicativo depois de clicar nele, algumas vezes:

Aplicativo de teste mostrando os controles

  1. Feche o aplicativo de teste clicando em seu fechar caixa no canto superior direito da janela Form1.

Próximas etapas

Anterior: A criação de um aplicativo do Windows Forms usando o.NET Framework (C++) | Próxima: A criação de um jogo usando o DirectX (C++)

Consulte também

Tarefas

Tour guiado do Visual C++

Referência

Windows API

System.Windows.Forms

Conceitos

Apresentando o IDE (C++) de Visual Studio

Outros recursos

Criando Aplicativos Baseados no Windows

Controles de Windows Forms