Propriedades de controle
Além das propriedades definidas e implementadas pelo próprio controle, a tecnologia de controles ActiveX também envolve:
-
Propriedades do ambiente
-
Eles são expostos pelo contêiner por meio de um site de cliente de controle para fornecer valores ambientais que se aplicam a todos os controles incorporados no contêiner. Por exemplo, um contêiner pode fornecer uma cor de plano de fundo padrão ou uma fonte padrão que o controle pode usar. As propriedades de ambiente são expostas por meio de IDispatch implementado no objeto de site de um contêiner. O contêiner chama o método IOleControl::OnAmbientPropertyChange do controle quando qualquer uma de suas propriedades de ambiente altera o valor. Em resposta, um controle pode precisar atualizar seu próprio estado interno ou visual em resposta. O contêiner indica qual propriedade de ambiente foi alterada com o parâmetro DISPID ou pode passar DISPID_UNKNOWN para indicar que várias propriedades de ambiente foram alteradas.
-
Propriedades estendidas
-
Na verdade, eles são implementados por um contêiner para encapsular os controles que ele contém para fornecer propriedades gerenciadas por contêiner que aparecem como se fossem propriedades de controle nativas. O contêiner pode agregar o controle, adicionando as propriedades estendidas para complementar ou substituir as propriedades do controle. O objeto agregado é chamado de controle estendido. Para o contêiner, o controle estendido aparece como o próprio controle e as propriedades estendidas parecem ser expostas pelo controle. O contêiner oferece suporte a um controle estendido por meio de seu método de site cliente IOleControlSite::GetExtendedControl. O método GetExtendedControl permite que os controles naveguem pelo site até o objeto de controle estendido fornecido pelo contêiner, se o contêiner oferecer suporte a esse recurso. Um contêiner também pode optar por mostrar páginas de propriedades para seus controles estendidos, além daquelas páginas que um controle normalmente especificaria por meio de ISpecifyPropertyPages. Devido a isso, um controle precisa pedir a um contêiner para mostrar um quadro de propriedade antes que o controle tente fazer isso sozinho. O controle chama IOleControlSite::ShowPropertyFrame para fazer isso. Se o contêiner implementar essa função, ele mostrará o próprio quadro de propriedade; Se o método retornar um erro, o controle poderá mostrar o quadro de propriedade.
Para Mais informações, consulte os seguintes tópicos:
Tópicos relacionados