Crear un control de formularios Windows Forms (C++)

Actualización: noviembre 2007

Los controles de formularios Windows Forms son componentes que se pueden agregar a aplicaciones de formularios Windows Forms (aplicaciones con GUI destinadas al Common Language Runtime). Las aplicaciones de Windows Forms en Visual C++ utilizan clases de .NET Framework y otras características .NET con la nueva sintaxis de Visual C++.

En este procedimiento, creará un control de formularios Windows Forms que muestra un número. Este número se incrementa cada vez que un usuario hace clic en la etiqueta de una aplicación. También creará un proyecto de aplicación de Windows Forms para probar el control.

En este tutorial se trata lo siguiente:

  • Crear un proyecto.

  • Diseñar el control.

  • Agregar una propiedad personalizada al control.

  • Agregar un proyecto para probar el control.

  • Colocar el control en una aplicación.

  • Ejecutar la aplicación.

Requisitos previos

En este tema se da por supuesto que conoce los fundamentos del lenguaje C++. Si está empezando a aprender C++, le recomendamos el libro "C++ Beginner's Guide" escrito por Herb Schildt, disponible en línea en https://go.microsoft.com/fwlink/?LinkId=115303.

Para obtener una demostración en vídeo, vea Video How to: Creating a Windows Forms Control (C++).

Crear un nuevo proyecto

La plantilla de un proyecto de control de formularios Windows Forms que se utiliza en esta sección crea un control de usuario, el cual es un control compuesto que contiene otros controles.

Como alternativa, puede crear un control de formularios Windows Forms derivando una clase directamente de la clase Control (en la que el código es responsable de dibujar el control) o de la clase Component (un control sin interfaz de usuario).

Para crear un nuevo proyecto de control de formularios Windows Forms

  1. En el menú Archivo, seleccione Nuevo y, a continuación, haga clic en Proyecto....

  2. En el panel Tipos de proyecto, seleccione CLR en el nodo Visual C++ y, a continuación, seleccione Biblioteca de controles de formularios Windows Forms en el panel Plantillas instaladas de Visual Studio.

    Escriba un nombre para el proyecto, como clickcounter.

    Escriba un nombre diferente para la solución, como controlandtestapp.

    Puede aceptar la ubicación predeterminada, especificar la ubicación que desee o desplazarse hasta un directorio donde desee guardar el proyecto.

  3. Se abre el Diseñador de Windows Forms y aparece un área en la que puede agregar los controles que desee colocar en la superficie de diseño de controles.

Diseñar el control

En este paso, agrega un control Label a la superficie de diseño de control. Establece, a continuación, algunas propiedades en el propio control y en el control Label que contiene.

Para establecer las propiedades de un control de usuario

  1. Si la ventana Propiedades no está visible, en el menú Ver haga clic en Ventana Propiedades.

    Haga clic en el control para seleccionarlo y establezca sus propiedades del modo siguiente:

    • Establezca la propiedad Size en 100, 100.

    • Establezca BorderStyle en Fixed3D

      Los límites de la etiqueta se podrán ver después de colocar el control en una aplicación.

  2. Si la ventana Cuadro de herramientas no está visible, seleccione Cuadro de herramientas en el menú Ver.

    Arrastre un control Label desde el Cuadro de herramientas hasta la superficie de diseño y colóquelo hacia la mitad del control.

    Establezca estas propiedades para la etiqueta:

    • Establezca BorderStyle en FixedSingle

    • Establezca Text en el dígito 0 (cero).

    • Establezca Autosize a False.

    • Establezca Size en 30, 20.

    • Establezca TextAlign en MiddleCenter.

    Deje la propiedad Name (como haga referencia a ella en el código) sin modificar como label1. El control debería tener un aspecto similar al siguiente:

  3. Agregue un controlador de eventos para el evento Click de la etiqueta (el evento predeterminado para una etiqueta) haciendo doble clic en la etiqueta.

  4. El archivo clickcounter.h se muestra en el área de edición con un método controlador de eventos vacío.

    Nota:

    Si necesita más espacio, cierre la ventana Cuadro de herramientas o la ventana Propiedades haciendo clic en los cuadros de cierre o desanclando las ventanas para que se oculten automáticamente.

  5. Desplace el cursor hasta después de la llave de apertura del método label1_Click, presione la tecla Entrar, y escriba:

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

    IntelliSense muestra una lista de opciones válidas después de escribir un operador de resolución de ámbito (::), operador de punto (.) u operador de flecha (- >). Puede resaltar un elemento y presionar Tabulador o Entrar, o hacer doble clic en un elemento para insertarlo en el código.

    Asimismo, cuando escribe un paréntesis de apertura para un método, Visual Studio muestra tipos de argumentos válidos para cada sobrecarga del método.

Agregar una propiedad personalizada al control

En este paso, definirá una propiedad personalizada que determina si el número mostrado en el control se incrementa cuando el usuario hace clic en la etiqueta o en cualquier ubicación del control.

Para agregar una propiedad personalizada a un control

  1. Coloque el cursor después de los dos puntos del primer indicador de ámbito public en la parte superior del archivo clickcounterControl.h, presione Entrar y escriba lo siguiente:

    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;
        }
    }
    

    Cuando se establece la propiedad ClickAnywhere del control en true, la propiedad Dock de la etiqueta toma el valor DockStyle::Fill, y la etiqueta rellena toda la superficie del control. Un clic en cualquier parte de la superficie de control producirá un evento Click de la etiqueta, el cual incrementa el número en la etiqueta.

    Cuando la propiedad ClickAnywhere es false (el valor predeterminado), la propiedad Dock de la etiqueta se establece en DockStyle::None. La etiqueta no llena el control, y el clic en el control debe realizarse dentro de los límites de la etiqueta para que produzca un evento Click de la etiqueta, el cual incrementa el número.

  2. Crear el control de usuario. En el menú Generar, seleccione Generar solución.

    Si no hay ningún error, un control de formularios Windows Forms se genera con un nombre de archivo de clickcounter.dll. Puede buscar este archivo en la estructura de directorios del proyecto.

Agregar un proyecto para probar el control

En este paso, creará un proyecto de aplicación de Windows Forms en el que colocará instancias del control clickcounter en un formulario.

Nota:

La aplicación de Windows Forms que crea para probar el control la puede escribir con Visual C++ o con otro lenguaje .NET, como C# o Visual Basic.

Para crear un proyecto de aplicación de Windows Forms

  • En el menú Archivo, seleccione Nuevo y, a continuación, haga clic en Proyecto….

También puede agregar un proyecto a la soluciónhaciendo clic con el botón secundario del mouse en la solución controlandtestappen el Explorador de soluciones, seleccionando Agregar yhaciendo clic en Nuevo proyecto....

  1. En el panel Tipos de proyecto, seleccione CLR en el nodo Visual C++ y, a continuación, seleccione Aplicación de Windows Forms en el panel Plantillas instaladas de Visual Studio.

    Escriba un nombre para el proyecto, como testapp.

    Asegúrese de seleccionar Agregar a solución en lugar de aceptar la opción predeterminada Crear nueva solución en la lista desplegable Solución y, a continuación, haga clic en Aceptar.

  2. El Diseñador de Windows Forms para el nuevo proyecto se abre y muestra un nuevo formulario denominado Form1, como en esta figura:

Para agregar un control al Cuadro de herramientas

  1. Agregar una referencia al control. En el menú Proyecto, seleccione Referencias o haga clic con el botón secundario del mouse en el proyecto testapp en el Explorador de soluciones y haga clic en Referencias.

    Haga clic en el botón Agregar nueva referencia, haga clic en la ficha Proyectos (está agregando una referencia a otro proyecto de esta solución) y, a continuación, seleccione el proyecto clickcounter. Haga clic dos veces en Aceptar.

  2. Si no puede ver la ventana Cuadro de herramientas, seleccione Cuadro de herramientas en el menú Ver.

  3. Haga clic con el botón secundario del mouse en el Cuadro de herramientas y haga clic en Elegir elementos.

    Haga clic en el botón Examinar y busque el archivo clickcounter.dll en la estructura de directorios de soluciones. Selecciónelo y haga clic en Abrir.

    El control clickcounter aparece en la lista Componentes de .NET Framework con una marca de verificación. Haga clic en Aceptar.

    El control aparece en el Cuadro de herramientas con el icono de "engranaje" predeterminado.

Colocar el control en una aplicación

En este paso, colocará dos instancias del control en un formulario de aplicación y establecerá sus propiedades.

Para colocar instancias de un control en un formulario

  1. Arrastre dos instancias del control clickcounter desde el Cuadro de herramientas. Colóquelas en el formulario de modo que no se superpongan.

    Si desea ensanchar el formulario, haga clic en él para seleccionarlo y arrastre hacia fuera uno de los controladores de selección.

  2. Si no puede ver la ventana Propiedades, seleccione Propiedades en el menú Ver.

    La propiedad ClickAnywhere está en la sección Varios de la Ventana Propiedades (si las propiedades están organizadas por categorías).

  3. Haga clic en una instancia del control clickcounter del formulario para seleccionarla y, a continuación, establezca su propiedad ClickAnywhere en true.

  4. Deje la propiedad ClickAnywhere de la otra instancia del control clickcounter establecida en false (el valor predeterminado).

  5. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto testapp y, a continuación, seleccione Establecer como proyecto de inicio.

  6. En el menú Generar, seleccione Volver a generar solución.

    Debería ver que los dos proyectos se generan sin errores.

Ejecutar la aplicación

En este paso, ejecutará la aplicación y hará clic en los controles para probarlos.

Para probar la aplicación

  1. En el menú Depurar, elija Iniciar depuración.

    El formulario aparece con las dos instancias del control visible.

  2. Ejecute la aplicación y haga clic en ambos controles clickcounter:

    • Haga clic en el control con ClickAnywhere establecido en true.

      El número de la etiquetase incrementa cuando hace clic en cualquier parte del control.

    • Haga clic en el control con ClickAnywhere establecido en false.

      El número de la etiqueta sólo se incrementa al hacer clic dentro del límite visible de la etiqueta. La captura de pantalla siguiente muestra cómo podría aparecer la aplicación después de hacer clic varias veces:

  1. Cierre la aplicación de prueba haciendo clic en su cuadro de cierre en la esquina superior derecha de la ventana Form1.

Pasos siguientes

Anterior:Crear una aplicación de formularios Windows Forms mediante .NET Framework (C++) | Siguiente:Crear un juego mediante DirectX (C++)

Vea también

Tareas

Paseo guiado por Visual C++

Referencia

System.Windows.Forms

Otros recursos

Crear aplicaciones basadas en Windows

Controles de formularios Windows Forms