Os controles ActiveX MFC: Acessando propriedades ambiente

Este artigo descreve como um controle ActiveX pode acesso propriedades ambiente de seu contêiner de controle.

Um controle pode obter informações sobre seu recipiente acessando as propriedades do ambiente do contêiner.Essas propriedades exponham características visuais, sistema autônomo cor do plano de fundo do contêiner, a fonte corrente usada pelo recipiente e características operacionais, sistema autônomo se o recipiente está atualmente no modo de usuário ou no modo de designer.Um controle pode usar propriedades do ambiente para adaptar sua aparência e comportamento para o contêiner particular na qual ele está incorporado.No entanto, um controle nunca deve assumir que o seu contêiner será compatível com qualquer propriedade de ambiente específica.Na verdade, alguns recipientes podem não oferecer suporte as propriedades do 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 telefonar para COleControl::GetAmbientProperty.Esta função espera a ID de despacho para a propriedade de ambiente sistema autônomo o primeiro parâmetro (o arquivo OLECTL.H define despacho identificações para o conjunto padrão de propriedades do ambiente).

Os parâmetros do GetAmbientProperty função são a ID de expedição, uma marca de variante indicando o tipo de propriedade esperado e um ponteiro para a memória onde o valor deve ser retornado. O tipo de dados ao qual se refere a esse ponteiro dependerá do marca variant.A função retornará 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 contêiner, um valor padrão de TRUE é considerado:

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

Para sua conveniência, COleControl fornece auxiliar funções que muitas das propriedades de ambiente usadas com freqüência de acesso e padrões apropriados de retorno quando as propriedades não estão disponível. Essas funções auxiliares são sistema autônomo segue:

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

Consulte também

Conceitos

Controles do ActiveX MFC