Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
IPolyCtl es la interfaz que contiene los métodos y propiedades personalizados del control, y usted agregará una propiedad a él.
Para agregar las definiciones de propiedad al proyecto
En la Vista de clases, expanda la rama
Polygon.Haga clic con el botón derecho en
IPolyCtl.En el menú contextual, haga clic en Agregar y después en Agregar propiedad. Aparecerá el asistente para Agregar propiedad.
Escriba
Sidescomo Nombre de propiedad.En la lista desplegable Tipo de propiedad, seleccione
short.Haga clic en Aceptar para terminar de agregar la propiedad.
Desde el Explorador de soluciones, abra Polygon.idl y reemplace las siguientes líneas al final de la interfaz
IPolyCtl : IDispatch:short get_Sides(); void set_Sides(short value);con
[propget, id(1), helpstring("property Sides")] HRESULT Sides([out, retval] short *pVal); [propput, id(1), helpstring("property Sides")] HRESULT Sides([in] short newVal);Desde el Explorador de soluciones, abra PolyCtl.h y agregue las siguientes líneas después de la definición de
m_clrFillColor:short m_nSides; STDMETHOD(get_Sides)(short* pval); STDMETHOD(put_Sides)(short newval);
Aunque ahora tiene funciones de esqueleto para establecer y recuperar la propiedad y una variable para almacenarla, debe implementar las funciones en consecuencia.
Para actualizar los métodos get y put
Establecer el valor predeterminado en
m_nSides. Convierta la forma predeterminada en un triángulo agregando una línea al constructor en PolyCtl.h:m_nSides = 3;Implemente los métodos
GetyPut. Las declaraciones de funciónget_Sidesyput_Sidesse han agregado a PolyCtl.h. Ahora agregue el código paraget_Sidesyput_Sidesa PolyCtl.cpp con lo 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 get_Sides devuelve el valor actual de la propiedad Sides a través del puntero pVal. En el método put_Sides, el código garantiza que el usuario establece la propiedad Sides en un valor aceptable. El mínimo debe ser 3 y, como se usará una matriz de puntos para cada lado, 100 es un límite razonable para un valor máximo.
Ahora tiene una propiedad denominada Sides. En el paso siguiente, cambiará el código del dibujo para usarlo.
Volver al paso 2 | Avanzar al paso 4