Partilhar via


Controles ActiveX MFC: Adicionando propriedades de estoque

As propriedades de estoque diferem das propriedades personalizadas porque já são implementadas pela classe COleControl. COleControl Contém funções de membro predefinidas que suportam 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 estoque, consulte Propriedades de estoque suportadas pelo Assistente para adicionar propriedades mais adiante neste artigo. As entradas do mapa de distribuição para propriedades de stock são sempre prefixadas por DISP_STOCKPROP.

Este artigo descreve como adicionar uma propriedade stock (neste caso, Caption) a um controlo ActiveX utilizando o Assistente para Adicionar Propriedades e explica as modificações de código resultantes. Os tópicos incluem:

Usando o Assistente para Adicionar Propriedade para Adicionar uma Propriedade Stock

Adicionar propriedades de estoque requer menos código do que adicionar propriedades personalizadas, porque o suporte para a propriedade é tratado automaticamente pelo COleControl. O procedimento a seguir demonstra a adição da propriedade stock Caption a uma estrutura de controle ActiveX e também pode ser usado para adicionar outras propriedades stock. Substitua o nome da propriedade stock selecionada por Caption.

Para adicionar a propriedade de legenda padrão usando o Assistente para Adicionar Propriedade

  1. Carregue o projeto do seu controlador.

  2. Na Vista de Classe, expanda o nó da biblioteca do seu controle.

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

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

    Isso abre o Assistente para Adicionar Propriedade.

  5. Na caixa Nome da propriedade , clique em Legenda.

  6. Clique em Concluir.

Assistente para Adicionar Alterações às Propriedades de Stock

Como COleControl suporta propriedades de stock, o Assistente para Adicionar Propriedades não altera a declaração de classe de forma alguma; ele adiciona a propriedade ao mapa de despacho. O Assistente de Adição de Propriedade adiciona a seguinte linha ao mapa de despacho do controlo, que está localizado no arquivo de implementação (.CPP):

DISP_STOCKPROP_CAPTION()

A linha a seguir é adicionada à descrição da interface do controle (ficheiro .IDL):

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

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

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

Propriedades de estoque suportadas pelo Assistente para Adicionar Propriedade

A COleControl classe fornece nove propriedades de estoque. Você pode adicionar as propriedades desejadas usando o Assistente para Adicionar Propriedade.

Propriedade Entrada do mapa de expedição Como aceder ao valor
Appearance 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.
Caption DISP_STOCKPROP_CAPTION( ) Valor acessível chamando InternalGetText.
Enabled DISP_STOCKPROP_ENABLED( ) Valor acessível como m_bEnabled.
Font DISP_STOCKPROP_FONT( ) Consulte o artigo Controles ActiveX MFC: Usando fontes para uso.
ForeColor DISP_STOCKPROP_FORECOLOR( ) Valor acessível chamando GetForeColor.
hWnd DISP_STOCKPROP_HWND( ) Valor acessível como m_hWnd.
Text DISP_STOCKPROP_TEXT( ) Valor acessível chamando InternalGetText. Esta propriedade é a mesma que Caption, exceto para o nome da propriedade.
ReadyState DISP_STOCKPROP_READYSTATE() Valor acessível como m_lReadyState ou GetReadyState

Propriedades de Stock e Notificação

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

Propriedades da cor

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

Os valores de cor para as propriedades ForeColor e BackColor são acedidos chamando a função GetForeColor ou a função GetBackColor, respectivamente.

O exemplo a seguir demonstra o uso dessas duas propriedades de cor ao pintar um controle. Ele inicializa uma variável COLORREF temporária e um CBrush objeto com chamadas para TranslateColor: um usando a ForeColor propriedade e o outro usando a BackColor propriedade. Um objeto temporário CBrush é usado para pintar o retângulo do controle e a cor do texto é definida usando a 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);

Ver também

Controles ActiveX MFC
Controles ActiveX MFC: Propriedades
Controles ActiveX MFC: Métodos
Classe COleControl