Controles de ActiveX MFC: Adicionando propriedades de ações

Propriedades de ações diferem das propriedades personalizadas que elas já são implementadas pela classe COleControl.COleControlcontém funções de membro predefinidas que oferecem suporte a propriedades comuns para o controle.Algumas propriedades comuns incluem a legenda do controle e as cores de primeiro plano e plano de fundo.Para obter informações sobre outras propriedades de ações, consulte Propriedades de ações suportadas pelo Assistente para adicionar propriedade posteriormente neste artigo.Entradas de mapa de expedição para propriedades de ações sempre são antecedidas pela DISP_STOCKPROP.

Este artigo descreve como adicionar uma propriedade ações (no caso, legenda) para um controle de ActiveX usando o Assistente para adicionar propriedade e explica as modificações de código resultante.Os tópicos incluem:

  • Usando o Assistente para adicionar propriedade para adicionar uma propriedade ações

  • Adicionar propriedade Assistente alterações para propriedades de ações

  • Propriedades de ações suportadas pelo Assistente para adicionar propriedade

  • Notificação e propriedades de ações

  • Propriedades de cor

    ObservaçãoObservação

    Controles personalizados Visual Basic geralmente têm propriedades como superior, esquerda, largura, altura, alinhar, marca, nome, TabIndex, TabStop e pai.ActiveX recipientes de controle, no entanto, são responsáveis por implementar essas propriedades de controle e, portanto, controles de ActiveX não devem suporte a essas propriedades.

Usando o Add Assistente de propriedade para adicionar uma propriedade de ações

Adicionando propriedades de ações requer menos código que adicionando propriedades personalizadas porque o suporte para a propriedade é tratada automaticamente pelo COleControl.O procedimento a seguir demonstra adicionando o propriedade Caption de estoque para uma estrutura de controle de ActiveX e também pode ser usado para adicionar outras propriedades de ações.Substitua o nome de propriedade ações selecionada para a legenda.

Para adicionar a propriedade legenda ações usando o Assistente para adicionar propriedade

  1. Carregar projeto do controle.

  2. No modo de exibição de classe, expanda o nó da biblioteca do seu controle.

  3. Botão direito do mouse no nó de interface para o seu controle (o segundo nó do nó biblioteca) para abrir o menu de atalho.

  4. No menu de atalho, clique em Add e clique em Adicionar propriedade de.

    Isso abre o Assistente para adicionar propriedade.

  5. No O nome da propriedade , clique legenda.

  6. Clique em Concluir.

Adicionar propriedade Assistente alterações para propriedades de ações

Porque COleControl propriedades de ações oferece suporte, o Assistente para adicionar propriedade não altera a declaração de classe de qualquer maneira; Adiciona a propriedade para o mapa de despacho.O Assistente para adicionar propriedade adiciona a seguinte linha para o mapa de despacho de controle, que está localizado na implementação (.Arquivo CPP):

DISP_STOCKPROP_CAPTION()

A seguinte linha é adicionada à descrição da interface do controle (.Arquivo IDL):

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

Esta linha atribui a propriedade legenda uma ID específica.Observe que a propriedade é acoplável e solicitar permissão do banco de dados antes de modificar o valor.

Isso torna a propriedade Caption disponível para usuários do seu controle.Para usar o valor de uma propriedade de ações, acessar uma variável de membro ou a função de membro de COleControl classe base.Para obter mais informações sobre essas funções de membro e variáveis de membro, consulte a próxima seção, propriedades de ações suportadas pelo Assistente para adicionar propriedade.

Ações propriedades com suporte a adicionar Assistente de propriedade

O COleControl classe fornece nove propriedades de ações.Você pode adicionar as propriedades que você deseja usando o Assistente para adicionar propriedade.

Propriedade

Entrada de mapa de expedição

Como acessar o valor

Aparência

(DISP_STOCKPROP_APPEARANCE)

Valor acessível como m_sAppearance.

BackColor

(DISP_STOCKPROP_BACKCOLOR)

Valor acessível chamando GetBackColor.

BorderStyle

(DISP_STOCKPROP_BORDERSTYLE)

Valor acessível como m_sBorderStyle.

Legenda

(DISP_STOCKPROP_CAPTION)

Valor acessível chamando InternalGetText.

Enabled

(DISP_STOCKPROP_ENABLED)

Valor acessível como m_bEnabled.

Fonte

(DISP_STOCKPROP_FONT)

Consulte o artigo controles de ActiveX de MFC: usando fontes para uso.

ForeColor

(DISP_STOCKPROP_FORECOLOR)

Valor acessível chamando GetForeColor.

hWnd

(DISP_STOCKPROP_HWND)

Valor acessível como m_hWnd.

Texto

(DISP_STOCKPROP_TEXT)

Valor acessível chamando InternalGetText.Esta propriedade é o mesmo que legenda, exceto para o nome da propriedade.

ReadyState

DISP_STOCKPROP_READYSTATE()

Valor acessível como m_lReadyState ouGetReadyState

Propriedades de ações e notificação

A maioria das propriedades de ações têm funções de notificação que podem ser substituídas.Por exemplo, sempre que o BackColor propriedade for alterada, o OnBackColorChanged é chamada de função (uma função de membro da classe de controle).A implementação padrão (em COleControl) chamadas InvalidateControl.Substitua esta função se você quiser executar ações adicionais em resposta a essa situação.

Propriedades de cor

Você pode usar o estoque ForeColor e BackColor as propriedades ou sua própria cor personalizada, ao pintar o controle.Para usar uma propriedade de cor, chamar o COleControl::TranslateColor função de membro.Os parâmetros desta função são o valor da propriedade de cor e um identificador de paleta opcional.O valor de retorno é um COLORREF valor que pode ser passado para GDI funções, como SetTextColor e CreateSolidBrush.

Os valores de cor para o estoque de ForeColor e BackColor propriedades são acessadas chamando tanto a GetForeColor ou o GetBackColor funcionar, respectivamente.

O exemplo a seguir demonstra o uso dessas propriedades de duas cores ao pintar um controle.Ele inicializa temporário COLORREF variável e um CBrush objeto com chamadas para TranslateColor: usando um o ForeColor propriedade e outro usando o BackColor propriedade.Temporário CBrush objeto é usado para pintar o retângulo de controle e a cor do texto é definida usando o ForeColor propriedade.

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

Consulte também

Referência

Classe COleControl

Conceitos

Controles de ActiveX do MFC

Controles de ActiveX MFC: propriedades

Controles de ActiveX MFC: métodos