Os controles ActiveX MFC: Adicionar propriedades de ações

Propriedades ações diferem das propriedades personalizadas que já são implementados pela classe COleControl. COleControl conté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 com suporte de ações a propriedade de Assistente neste artigo.As entradas de MAP de despacho para estoque propriedades sempre são o prefixo DISP_STOCKPROP.

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

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

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

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

  • Propriedades de ações e notificação

  • Propriedades de cor

    Observação:

    Controles personalizados do Visual Basic geralmente têm propriedades sistema autônomo Top, Left, largura, altura, alinhar, marca, nome, TabIndex, TabStop e pai.Recipientes de controle ActiveX, no entanto, são responsáveis por implementar esses propert controle propriedades e, portanto, os controles ActiveX não devem suporte a essas propriedades.

Usando a propriedade de Assistente 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 é manipulada automaticamente pela COleControl. O procedimento a seguir demonstra a adicionar o propriedade legenda de estoque a uma estrutura de controle ActiveX e também pode ser usado para adicionar outras propriedades de ações.Substitua o nome de propriedade das ações selecionadas para 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, expandir o nó de biblioteca do seu controle.

  3. clicar com o botão direito do mouse no nó de interface para o seu controle (o segundo nó do nó biblioteca) para em em aberto o menu de atalho.

  4. No menu de atalho, clicar Adicionar e, em seguida, clicar Adicionar propriedade.

    Isso abre o Adicionar Assistente de propriedade.

  5. No Nome da propriedade clicarLegenda.

  6. Clique em Finish.

Adicionar propriedade Changes assistente para propriedades de ações

Porque COleControl Propriedades de ações oferece suporte, o Assistente para adicionar propriedade não altera a declaração da classe de forma alguma; adiciona a propriedade para o MAP de despacho. O Assistente para adicionar propriedade adiciona o MAP de despacho do controle, localizada no arquivo de implementação (.CPP) a seguinte linha:

DISP_STOCKPROP_CAPTION()

A seguinte linha é adicionada ao arquivo de descrição (.idl) de interface do controle:

[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 legenda disponível para usuários do seu controle.Para usar o valor de uma propriedade de ações, acesso uma variável de membro ou a função de membro do COleControl classe base. Para obter mais informações sobre essas variáveis de membros e funções de membro, consulte a próxima seção, ações propriedades suportados pelo Assistente para adicionar propriedade.

Propriedades com suporte de ações a propriedade de Assistente

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

Propriedade

Entrada de MAP de despacho

Como acessar o valor

Aparência

(DISP_STOCKPROP_APPEARANCE)

Valor acessível sistema autônomo m_sAppearance.

BackColor

(DISP_STOCKPROP_BACKCOLOR)

Valor acessível chamando GetBackColor.

BorderStyle

(DISP_STOCKPROP_BORDERSTYLE)

Valor acessível sistema autônomo m_sBorderStyle.

Legenda

(DISP_STOCKPROP_CAPTION)

Valor acessível chamando InternalGetText.

Enabled

(DISP_STOCKPROP_ENABLED)

Valor acessível sistema autônomo m_bEnabled.

Fonte

(DISP_STOCKPROP_FONT)

Consulte o artigo Os controles ActiveX MFC: Usando fontes para uso.

ForeColor

(DISP_STOCKPROP_FORECOLOR)

Valor acessível chamando GetForeColor.

hWnd

(DISP_STOCKPROP_HWND)

Valor acessível sistema autônomo m_hWnd.

Texto

(DISP_STOCKPROP_TEXT)

Valor acessível chamando InternalGetText. Esta propriedade é igual a Legenda, exceto para o nome da propriedade.

ReadyState

DISP_STOCKPROP_READYSTATE()

Valor acessível sistema autônomo m_lReadyState ou GetReadyState

Propriedades e a notificação de ações

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

Propriedades de cor

Você pode usar o estoque ForeColor e BackColor Propriedades da ou sua própria cor personalizada, ao pintar o controle. Para usar uma propriedade de cor, chame o COleControl::TranslateColorfunção de membro .Os parâmetros desta função são o valor da propriedade color e uma alça de paleta opcional.O valor retornado é um COLORREF valor de que pode ser passado para funções GDI, sistema autônomo SetTextColor e CreateSolidBrush.

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

O exemplo a seguir demonstra usando essas propriedades de duas cores ao pintar um controle.Ele inicializa um temporária COLORREF variável e um CBrush objeto com chamadas para TranslateColor: um usando o ForeColor propriedade e Outros usar o BackColor propriedade. Um temporária CBrush objeto, em seguida, é usado para pintar o retângulo de controle e a cor do texto é definida com 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

Conceitos

Controles do ActiveX MFC

Os controles ActiveX MFC: Propriedades

Os controles ActiveX MFC: Métodos

Referência

Classe COleControl