Compartir a través de


Agregar una propiedad al control (Tutorial de ATL, Parte 3)

IPolyCtl es la interfaz que contiene métodos personalizados y las propiedades del control, y agregue una propiedad a él.

Para agregar una propiedad mediante el asistente para agregar propiedades

  1. En la vista de clases, expanda la bifurcación Polygon.

  2. Haga clic con el botón secundario IPolyCtl.

  3. En el menú contextual, haga clic en Agregar, y haga clic en Agregar propiedad.

    El asistente para agregar aparecerá.

  4. En la lista desplegable de tipos de propiedades, seleccione SHORT.

  5. tipo lados como nombre de propiedad.

  6. Haga clic Finalizar a termine de agregar la propiedad.

Cuando se agrega una propiedad a la interfaz, MIDL (el programa que los archivos de compilaciones .idl) define un método de Get para recuperar su valor y un método de Put para establecer un nuevo valor. Llama a los métodos anteponiendo put_ y get_ al nombre de propiedad.

El asistente para agregar agrega líneas necesarias al archivo .idl. También agrega los prototipos de función de Get y de Put a la definición de clase en PolyCtl.h y agrega una implementación vacía a PolyCtl.cpp. Puede comprobarlo PolyCtl.cpp que abre y buscando las funciones get_Sides y put_Sides.

Aunque ahora tiene funciones esquemáticas para establecer y recuperar la propiedad, necesita un lugar almacenarse. Creará una variable para almacenar la propiedad y actualizar las funciones en consecuencia.

Para crear una variable para almacenar la propiedad, y actualizar un título y recopilar métodos

  1. En el explorador de soluciones, PolyCtl.h abierto y agregue la siguiente línea después de la definición de m_clrFillColor:

    short m_nSides;
    
  2. establezca el valor predeterminado de m_nSides. Cree la forma predeterminada un triángulo agregando una línea al constructor en PolyCtl.h:

    m_nSides = 3;
    
  3. Implemente los métodos Get y Put. las declaraciones de función de get_Sides y de put_Sides se han agregado a PolyCtl.h. Reemplace el código de PolyCtl.cpp para get_Sides y put_Sides con el código siguiente:

    STDMETHODIMP CPolyCtl::get_Sides(short* pVal)
    {
       *pVal = m_nSides;
    
       return S_OK;
    }
    
    STDMETHODIMP CPolyCtl::put_Sides(short newVal)
    {
       if (2 < newVal && newVal < 101)
       {
          m_nSides = newVal;
          return S_OK;
       }
       else
       {
          return Error(_T("Shape must have between 3 and 100 sides"));
       }
    }
    

El método de get_Sides devuelve el valor actual de la propiedad de Sides a través del puntero de pVal . En el método de put_Sides , el código garantiza el usuario está estableciendo la propiedad de Sides un valor aceptable. El mínimo debe ser 2, y como una matriz de puntos se utilizará para cada lado, 100 es un límite razonable por un valor máximo.

Ahora tiene Sidespropiedad denominada. En el paso siguiente, cambiará el código de dibujo para utilizarlo.

De nuevo al paso 2 | En el paso 4

Vea también

Referencia

Tutorial de Active Template Library (ATL)