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.
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 estoque, consulte Propriedades de Estoque com suporte pelo Assistente para Adicionar Propriedade mais adiante neste artigo. As entradas do mapa de expedição para propriedades 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:
Usando o Assistente para Adicionar Propriedade para adicionar uma propriedade de estoque
Adicionar alterações do Assistente de Propriedade para propriedades de estoque
Propriedades de estoque compatíveis com o Assistente para Adicionar 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.
Usando o Assistente para Adicionar 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 selecionado para Legenda.
Para adicionar a propriedade 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 seu 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.
Adicionar alterações do Assistente de Propriedade para Propriedades de Estoque
Como COleControl dá suporte a propriedades de estoque, o Assistente para Adicionar Propriedade não altera a declaração de classe de forma alguma; ele adiciona a propriedade ao mapa de expedição. O Assistente para Adicionar Propriedade adiciona a linha a seguir ao mapa de expedição do controle, que está localizado na implementação (. Arquivo CPP):
DISP_STOCKPROP_CAPTION()
A linha a seguir é adicionada à descrição da interface do controle (. Arquivo IDL):
[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;
Essa linha atribui à propriedade Caption uma ID específica. Observe que a propriedade é associável e solicitará permissão do banco de dados antes de modificar o valor.
Isso disponibiliza a propriedade Caption aos usuários do seu controle. Para usar o valor de uma propriedade de estoque, acesse uma variável de membro ou função 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 de Estoque com suporte do Assistente para Adicionar Propriedade.
Propriedades de estoque compatíveis com o 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 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. Substitua essa 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 suas próprias propriedades de cores personalizadas, 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 cor 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 do estoque ForeColor e BackColor das propriedades são acessados chamando a função ou a GetForeColorGetBackColor função, 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