Compartilhar via


Controles de ActiveX MFC: Acessando propriedades do ambiente

Este artigo discute como um controle ActiveX pode acessar as propriedades do ambiente de seu contêiner de controle.

Um controle pode obter informações sobre seu recipiente acessando as propriedades ambiente do contêiner.Essas propriedades expõem características visuais, como cor de plano de fundo do contêiner, a fonte atual usada pelo contêiner e características operacionais, como, por exemplo, se o recipiente está atualmente no modo de usuário ou designer.Um controle pode usar propriedades ambiente para adaptar sua aparência e comportamento para determinado recipiente no qual está incorporado.Entretanto, um controle nunca presuma que seu contêiner suportará qualquer propriedade de ambiente específica.Na verdade, alguns recipientes podem não suportar propriedades ambiente todo.Na ausência de uma propriedade de ambiente, um controle deve assumir um valor padrão razoáveis.

Para acessar uma propriedade de ambiente, fazer uma chamada para COleControl::GetAmbientProperty.Esta função espera a identificação de expedição da propriedade ambiente como o primeiro parâmetro (o arquivo OLECTL.H define identificadores de expedição para o conjunto padrão de propriedades do ambiente).

Os parâmetros da GetAmbientProperty função são a identificação de expedição, uma marca variant indicando o tipo de propriedade esperado e um ponteiro de memória onde o valor deve ser retornado.O tipo de dados ao qual se refere a esse ponteiro irá variar dependendo da marca variant.A função retorna TRUE se o contêiner suporta a propriedade, caso contrário, ele retorna FALSE.

O exemplo de código a seguir obtém o valor da propriedade ambiente chamado "UserMode." Se a propriedade não é suportada pelo recipiente, um valor padrão de TRUE será considerado:

BOOL bUserMode;
if(!GetAmbientProperty( DISPID_AMBIENT_USERMODE, VT_BOOL, &bUserMode))
   bUserMode = TRUE;

Para sua conveniência, COleControl fornece funções auxiliares que acessar muitas das propriedades ambiente comumente usadas e retornam padrões apropriados quando as propriedades não estão disponíveis.Essas funções auxiliares são:

Se o valor de uma propriedade de ambiente alterado (por meio de alguma ação do contêiner), o OnAmbientPropertyChanged é chamada de função de membro do controle.Substitua esta função de membro para manipular uma notificação.O parâmetro OnAmbientPropertyChanged é a identificação de expedição da propriedade ambiente afetada.O valor de ID esse despacho pode ser DISPID_UNKNOWN, que indica que uma ou mais propriedades ambiente mudou, mas informações sobre quais propriedades foram afetadas não estão disponíveis.

Consulte também

Conceitos

Controles de ActiveX do MFC