Compartir a través de


Controles ActiveX de MFC: Agregar propiedades estándar

Las propiedades comunes difieren de las propiedades personalizadas en que se implementan ya por la clase COleControl.COleControl contiene el miembro predefinido funciona que las propiedades comunes de compatibilidad para el control.Algunas propiedades comunes incluyen la leyenda del control y los colores de primer plano y de fondo.Para obtener información sobre otras propiedades comunes, vea Propiedades comunes admitidas por el asistente para agregar propiedades más adelante en este artículo.Las entradas del mapa de envío para las propiedades comunes son prefijadas siempre por DISP_STOCKPROP.

En este artículo se describe cómo agregar una propiedad común (en este caso, caption) a un control ActiveX mediante el asistente para agregar propiedades y explica las modificaciones resultantes de código.Entre los temas se incluyen los siguientes:

  • Mediante el asistente para agregar propiedades para agregar una propiedad común

  • Agregue los cambios del asistente de las propiedades comunes

  • Propiedades comunes admitidas por el asistente para agregar propiedades

  • Propiedades y notificación comunes

  • Propiedades de colores

    [!NOTA]

    Los controles personalizados de Visual Basic tienen normalmente propiedades como top, Left, el ancho, alto, clasificar, etiqueta, nombre, TabIndex, TabStop, y elemento primario.Contenedores de controles ActiveX, sin embargo, son responsables de implementar estas propiedades de control y por consiguiente los controles ActiveX no deben admitir estas propiedades.

Mediante el asistente para agregar propiedades para agregar una propiedad común

Agregar propiedades comunes requiere menos código que propiedades personalizadas de suma porque la compatibilidad para la propiedad se encargan automáticamente COleControl.El procedimiento siguiente muestra cómo agregar la propiedad caption común a un marco de control ActiveX y también se puede utilizar para agregar otras propiedades comunes.Sustituya el nombre de propiedad común seleccionado para la leyenda.

Para agregar la propiedad caption habituales mediante el asistente para agregar propiedades

  1. Cargue el proyecto de control.

  2. En la vista de clases, expanda el nodo de la biblioteca del control.

  3. Haga clic con el botón secundario en el nodo de la interfaz para el control (el segundo nodo el nodo de biblioteca) para abrir el menú contextual.

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

    Esto abre Asistente para agregar propiedades.

  5. En el cuadro de Property Name , haga clic en Caption.

  6. Haga clic en Finalizar.

Agregue los cambios del asistente de las propiedades comunes

Dado que COleControl admite propiedades comunes, el asistente para agregar propiedades no cambia la declaración de clase de ninguna manera; agrega la propiedad a la asignación de envío.El asistente para agregar agrega la línea siguiente al mapa de envío del control, que se encuentra en el archivo de implementación (.CPP):

DISP_STOCKPROP_CAPTION()

La siguiente línea se agrega al archivo de descripción de la interfaz de control (.IDL):

[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;

Esta línea asigna a propiedad caption un identificador específicaObserve que la propiedad es enlazable y solicitará el permiso de base de datos antes de modificar el valor.

Esto hace que la propiedad caption a disposición de los usuarios del control.Para utilizar el valor de una propiedad común, tenga acceso a una función de variable miembro o miembro de la clase base de COleControl .Para obtener más información sobre estas variables miembro y funciones miembro, vea la siguiente sección, propiedades comunes admitidas por el asistente para agregar propiedades.

Propiedades comunes admitidas por el asistente para agregar propiedades

La clase de COleControl proporciona nueve propiedades comunes.Puede agregar propiedades que desee mediante el asistente para agregar propiedades.

Propiedad.

Entrada de asignación de envío

Cómo tener acceso al valor

Apariencia

DISP_STOCKPROP_APPEARANCE ()

Valor accesible como m_sAppearance.

BackColor

DISP_STOCKPROP_BACKCOLOR ()

Valor accesible llamando a GetBackColor.

BorderStyle

DISP_STOCKPROP_BORDERSTYLE ()

Valor accesible como m_sBorderStyle.

Leyenda

DISP_STOCKPROP_CAPTION ()

Valor accesible llamando a InternalGetText.

Enabled

DISP_STOCKPROP_ENABLED ()

Valor accesible como m_bEnabled.

Fuente

DISP_STOCKPROP_FONT ()

Vea el artículo Controles ActiveX de MFC: Utilizar las fuentes para el uso.

ForeColor

DISP_STOCKPROP_FORECOLOR ()

Valor accesible llamando a GetForeColor.

hWnd

DISP_STOCKPROP_HWND ()

Valor accesible como m_hWnd.

Text

DISP_STOCKPROP_TEXT ()

Valor accesible llamando a InternalGetText.Esta propiedad es igual que Caption, salvo el nombre de propiedad.

ReadyState

DISP_STOCKPROP_READYSTATE ()

Valor accesible como m_lReadyState o GetReadyState

Propiedades y notificación comunes

La mayoría de las propiedades comunes tienen funciones de notificación que se pueden reemplazar.Por ejemplo, siempre que se cambie la propiedad de BackColor , se llama a la función de OnBackColorChanged (una función miembro de clase de control).La implementación predeterminada (en COleControl) llama InvalidateControl.Invalide esta función si desea tomar medidas adicionales en respuesta a esta situación.

Propiedades de colores

Puede utilizar ForeColor y las propiedades comunes de BackColor , o sus propias propiedades de colores personalizadas, al dibujar el control.Para utilizar una propiedad color, llame a la función miembro de COleControl::TranslateColor .Los parámetros de esta función es el valor de la propiedad color y un identificador opcional de la paleta.El valor devuelto es un valor de COLORREF que se puede pasar a funciones de GDI, como SetTextColor y CreateSolidBrush.

Los valores de color para ForeColor y las propiedades comunes de BackColor tiene acceso llamando a GetForeColor o la función de GetBackColor , respectivamente.

El ejemplo siguiente muestra cómo utilizar estas propiedades bicolores al pintar un control.Inicializa una variable temporal de COLORREF y un objeto de CBrush con llamadas a TranslateColor: uno utilizando la propiedad de ForeColor y mediante la propiedad de BackColor .Un objeto temporal de CBrush se utiliza para pintar el rectángulo del control, y el color del texto se establece mediante la propiedad de ForeColor .

CBrush bkBrush(TranslateColor(GetBackColor()));
COLORREF clrFore = TranslateColor(GetForeColor());
pdc->FillRect(rcBounds, &bkBrush);
pdc->SetTextColor(clrFore);
pdc->DrawText(InternalGetText(), -1, rcBounds, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

Vea también

Referencia

COleControl (Clase)

Conceptos

Controles ActiveX de MFC

Controles ActiveX de MFC: Propiedades

Controles ActiveX de MFC: métodos