Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua sendo suportada. No entanto, não estamos mais adicionando recursos ou atualizando a documentação.
As propriedades de estoque diferem das propriedades personalizadas, pois elas já são implementadas pela classe COleControl.
COleControl contém funções de membro predefinidas que dão 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 inventário, consulte Propriedades de Inventário Suportadas pelo Assistente de Adição de Propriedade mais adiante neste artigo. As entradas do mapa de despacho para atributos de estoque são sempre prefixadas por DISP_STOCKPROP.
Este artigo descreve como adicionar uma propriedade de estoque (neste caso, Caption) a um controle ActiveX usando o Assistente para Adicionar Propriedade e explica as modificações de código resultantes. Os tópicos incluem:
Usar o Assistente de adição de propriedade para adicionar uma propriedade de estoque
Alterações do Assistente de adição de propriedade às propriedades de estoque
Propriedades de estoque com suporte para o Assistente de adição de propriedade
-
Observação
Os controles personalizados do Visual Basic normalmente têm propriedades como Top, Left, Width, Height, Align, Tag, Name, TabIndex, TabStop e Parent. Os contêineres de controle ActiveX, no entanto, são responsáveis por implementar essas propriedades de controle e, portanto, os controles ActiveX não devem dar suporte a essas propriedades.
Usar o Assistente de adição de propriedade para adicionar uma propriedade de estoque
Adicionar propriedades de estoque requer menos código do que adicionar propriedades personalizadas porque o suporte para a propriedade é tratado automaticamente por 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 de estoque. Substitua o nome da propriedade de estoque selecionada com Legenda.
Para adicionar a propriedade de legenda de estoque usando o Assistente para Adicionar Propriedade
Carregue o projeto do controle.
No Modo de Exibição de Classe, expanda o nó de biblioteca do controle.
Clique com o botão direito do mouse no nó de interface do controle (o segundo nó do nó da biblioteca) para abrir o menu de atalho.
No menu de atalho, clique em Adicionar e clique em Adicionar Propriedade.
Isso abre o Assistente para Adicionar Propriedade.
Na caixa Nome da Propriedade , clique em Legenda.
Clique em Concluir.
Alterações do Assistente de adição de propriedade às propriedades de estoque
Como COleControl dá suporte a propriedades predefinidas, o Assistente de Adição de 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 linha a seguir ao mapa de expedição do controle, que está localizado no arquivo de implementação (.CPP):
DISP_STOCKPROP_CAPTION()
A linha a seguir é adicionada ao arquivo de descrição da interface do seu controle (.IDL):
[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;
Essa 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 disponibiliza a propriedade Legenda aos usuários do controle. Para utilizar o valor de uma propriedade de estoque, acesse uma variável ou função de membro da classe base COleControl. Para obter mais informações sobre essas variáveis de membro e funções de membro, consulte a próxima seção, Propriedades de estoque com suporte para Assistente de adição de propriedade.
Propriedades de estoque com suporte para o Assistente de adição de 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 acessar o 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 do 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. Essa propriedade é igual a Caption, exceto pelo nome da propriedade. |
ReadyState |
DISP_STOCKPROP_READYSTATE() | Valor acessível como m_lReadyState ou GetReadyState |
Propriedades e notificação de estoque
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. Sobrescreva essa função se você quiser tomar ações adicionais em resposta a essa situação.
Propriedades de cor
Você pode usar as propriedades padrão ForeColor e BackColor, ou suas próprias propriedades personalizadas de cor, ao pintar o controle. Para usar uma propriedade de cor, chame a função de membro COleControl::TranslateColor. Os parâmetros dessa função são o valor da propriedade de cores e um identificador de paleta opcional. O valor retornado é um valor COLORREF que pode ser passado para funções GDI, como SetTextColor e CreateSolidBrush.
Os valores de cor das propriedades de estoque ForeColor e BackColor são acessados chamando a função GetForeColor ou a função GetBackColor, respectivamente.
O exemplo a seguir demonstra o uso dessas duas propriedades de cores ao pintar um controle. Ele inicializa uma variável COLORREF temporária e um CBrush objeto com chamadas para TranslateColor: uma usando a ForeColor propriedade e a outra usando a BackColor propriedade. Em seguida, 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);
Consulte também
Controles MFC ActiveX
Controles ActiveX do MFC: Propriedades
Controles ActiveX do MFC: métodos
Classe COleControl