Compartilhar via


Classe COleControlContainer

Atua como um contêiner de controle para controles ActiveX.

Sintaxe

class COleControlContainer : public CCmdTarget

Membros

Construtores públicos

Nome Descrição
COleControlContainer::COleControlContainer Constrói um objeto COleControlContainer.

Métodos públicos

Nome Descrição
COleControlContainer::AttachControlSite Cria um site de controle, hospedado pelo contêiner.
COleControlContainer::BroadcastAmbientPropertyChange Informa a todos os controles hospedados que uma propriedade de ambiente foi alterada.
COleControlContainer::CheckDlgButton Modifica o controle de botão especificado.
COleControlContainer::CheckRadioButton Seleciona o botão de opção especificado de um grupo.
COleControlContainer::CreateControl Cria um controle ActiveX hospedado.
COleControlContainer::CreateOleFont Cria uma fonte OLE.
COleControlContainer::FindItem Retorna o site personalizado do controle especificado.
COleControlContainer::FreezeAllEvents Determina se o site de controle está aceitando eventos.
COleControlContainer::GetAmbientProp Recupera a propriedade de ambiente especificada.
COleControlContainer::GetDlgItem Recupera o controle de caixa de diálogo especificado.
COleControlContainer::GetDlgItemInt Recupera o valor do controle de caixa de diálogo especificado.
COleControlContainer::GetDlgItemText Recupera a legenda do controle de caixa de diálogo especificado.
COleControlContainer::HandleSetFocus Determina se o contêiner lida com mensagens WM_SETFOCUS.
COleControlContainer::HandleWindowlessMessage Lida com as mensagens enviadas para um controle sem janelas.
COleControlContainer::IsDlgButtonChecked Determina o estado do botão especificado.
COleControlContainer::OnPaint Chamado para repintar uma parte do contêiner.
COleControlContainer::OnUIActivate Chamado quando um controle está prestes a ser ativado in-loco.
COleControlContainer::OnUIDeactivate Chamado quando um controle está prestes a ser desativado.
COleControlContainer::ScrollChildren Chamado pela estrutura quando as mensagens de rolagem são recebidas em uma janela filho.
COleControlContainer::SendDlgItemMessage Envia uma mensagem para o controle especificado.
COleControlContainer::SetDlgItemInt Define o valor do controle especificado.
COleControlContainer::SetDlgItemText Define o texto do controle especificado.

Membros de Dados Públicos

Nome Descrição
COleControlContainer::m_crBack A cor da tela de fundo do contêiner.
COleControlContainer::m_crFore A cor de primeiro plano do contêiner.
COleControlContainer::m_listSitesOrWnds Uma lista dos sites de controle com suporte.
COleControlContainer::m_nWindowlessControls O número de controles sem janela hospedados.
COleControlContainer::m_pOleFont Um ponteiro para a fonte OLE do site de controle personalizado.
COleControlContainer::m_pSiteCapture Ponteiro para o site de controle de captura.
COleControlContainer::m_pSiteFocus Ponteiro para o controle que tem um foco de entrada no momento.
COleControlContainer::m_pSiteUIActive Ponteiro para o controle que está ativado in-loco no momento.
COleControlContainer::m_pWnd Ponteiro para a janela que implementa o contêiner de controle.
COleControlContainer::m_siteMap O mapa do site.

Comentários

Isso é feito fornecendo suporte para um ou mais sites de controle ActiveX (implementados por COleControlSite). COleControlContainer Implementa totalmente as interfaces IOleInPlaceFrame e IOleContainer, permitindo que os controles ActiveX independentes atendam às qualificações como itens in-loco.

Normalmente, essa classe é usada em conjunto com COccManager e COleControlSite para implementar um contêiner de controle ActiveX personalizado, com sites personalizados para um ou mais controles ActiveX.

Hierarquia de herança

CObject

CCmdTarget

COleControlContainer

Requisitos

Cabeçalho: afxocc.h

COleControlContainer::AttachControlSite

Chamado pela estrutura para criar e anexar um site de controle.

virtual void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

Parâmetros

pWnd
Um ponteiro para um objeto CWnd.

nIDC
A ID do controle a ser anexado.

Comentários

Substitua essa função se você quiser personalizar esse processo.

Observação

Use a primeira forma dessa função, se você estiver vinculando estaticamente à biblioteca do MFC. Use o segundo formulário, se você estiver vinculando dinamicamente à biblioteca do MFC.

COleControlContainer::BroadcastAmbientPropertyChange

Informa a todos os controles hospedados que uma propriedade de ambiente foi alterada.

virtual void BroadcastAmbientPropertyChange(DISPID dispid);

Parâmetros

dispid
A ID de expedição da propriedade de ambiente que está sendo alterada.

Comentários

Essa função é chamada pela estrutura quando uma propriedade de ambiente alterou o valor. Substitua essa função para personalizar esse comportamento.

COleControlContainer::CheckDlgButton

Modifica o estado atual do botão.

virtual void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Parâmetros

nIDButton
A ID do botão a ser modificado.

nCheck
Especifica o estado do botão. Um dos seguintes pode ser feito:

  • BST_CHECKED Define o estado do botão como marcado.

  • BST_INDETERMINATE Define o estado do botão como cinza, indicando um estado indeterminado. Use esse valor somente se o botão tiver o estilo BS_3STATE ou BS_AUTO3STATE.

  • BST_UNCHECKED Define o estado do botão como desmarcado.

COleControlContainer::CheckRadioButton

Seleciona um botão de opção especificado em um grupo e limpa os botões restantes no grupo.

virtual void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

Parâmetros

nIDFirstButton
Especifica o identificador do primeiro botão de opção no grupo.

nIDLastButton
Especifica o identificador do último botão de opção no grupo.

nIDCheckButton
Especifica o identificador do botão de opção a ser marcado.

COleControlContainer::COleControlContainer

Constrói um objeto COleControlContainer.

explicit COleControlContainer(CWnd* pWnd);

Parâmetros

pWnd
Um ponteiro para a janela pai do contêiner de controle.

Comentários

Depois que o objeto tiver sido criado com êxito, adicione um site de controle personalizado com uma chamada para AttachControlSite.

COleControlContainer::CreateControl

Cria um controle ActiveX, hospedado pelo objeto COleControlSite especificado.

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

Parâmetros

pWndCtrl
Um ponteiro para o objeto de janela que representa o controle.

clsid
O ID de classe exclusiva do controle.

lpszWindowName
Um ponteiro para o texto a ser exibido no controle. Define o valor da propriedade Legenda ou Texto do controle (se houver). Se NULL, a propriedade Legenda ou Texto do controle não é alterada.

dwStyle
Estilos do Windows. Os estilos disponíveis ficam listados na seção Comentários.

rect
Especifica o tamanho e a posição do controle. Pode ser um objeto CRect ou uma estrutura RECT.

Nid
Especifica a ID da janela filho do controle.

pPersist
Um ponteiro para um CFile contendo o estado persistente para o controle. O valor padrão é NULL, indicando que o controle se inicializa sem restaurar seu estado de nenhum armazenamento persistente. Se não for NULL, ele deve ser um ponteiro para um objeto derivado de CFile que contém os dados persistentes do controle, na forma de um fluxo ou de um armazenamento. Esses dados poderiam ter sido salvos em uma ativação anterior do cliente. O CFile pode conter outros dados, mas deve ter seu ponteiro de leitura/gravação definido como o primeiro byte de dados persistentes no momento da chamada para CreateControl.

bStorage
Indica se os dados em pPersist devem ser interpretados como dados IStorage ou IStream. Se os dados em pPersist forem um armazenamento, o bStorage deverá ser TRUE. Se os dados em pPersist forem uma transmissão, o bStorage deverá ser FALSE. O valor padrão é FALSE.

bstrLicKey
Dados de chave de licença opcionais. Esses dados são necessários apenas para criar controles que exigem uma chave de licença em tempo de execução. Se o controle der suporte ao licenciamento, você deverá fornecer uma chave de licença para que a criação do controle tenha êxito. O valor padrão é NULL.

ppNewSite
Um ponteiro para o site de controle existente que hospedará o controle que está sendo criado. O valor padrão é NULL, indicando que um novo site de controle será criado e anexado automaticamente ao novo controle.

ppt
Um ponteiro para uma estrutura POINT que contém o canto superior esquerdo do controle. O tamanho do controle é determinado pelo valor de psize. Os valores ppt e psize são um método opcional de especificação do tamanho e da posição do controle.

psize
Um ponteiro para uma estrutura SIZE que contém o tamanho do controle. O canto superior esquerdo é determinado pelo valor de ppt. Os valores ppt e psize são um método opcional de especificação do tamanho e da posição do controle.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Somente um subconjunto dos sinalizadores dwStyle do Windows tem suporte de CreateControl:

  • WS_VISIBLE Cria uma janela visível inicialmente. Necessário se você quiser que o controle fique visível imediatamente, como janelas comuns.

  • WS_DISABLED Cria uma janela que desabilitada inicialmente. Uma janela desabilitada não pode receber entrada do usuário. Pode ser definido se o controle tiver uma propriedade Habilitada.

  • WS_BORDER Cria uma janela com uma borda de linha fina. A opção pode ser definida, se o controle tiver uma propriedade BorderStyle.

  • WS_GROUP Especifica o primeiro controle de um grupo de controles. O usuário pode alterar o foco do teclado de um controle no grupo para o outro usando as teclas de direção. Todos os controles definidos com o estilo WS_GROUP após o primeiro controle pertencem ao mesmo grupo. O próximo controle com o estilo WS_GROUP encerra o grupo e inicia o próximo grupo.

  • WS_TABSTOP Especifica um controle que pode receber o foco do teclado quando o usuário pressionar a tecla TAB. Pressionar a tecla TAB altera o foco do teclado para o próximo controle do estilo WS_TABSTOP.

Use a segunda sobrecarga para criar controles de tamanho padrão.

COleControlContainer::CreateOleFont

Cria uma fonte OLE.

void CreateOleFont(CFont* pFont);

Parâmetros

pFont
Um ponteiro para a fonte a ser usada pelo contêiner de controle.

COleControlContainer::FindItem

Localiza o site personalizado que hospeda o item especificado.

virtual COleControlSite* FindItem(UINT nID) const;

Parâmetros

Nid
O identificador do item a ser encontrado.

Valor de retorno

Um ponteiro para o site personalizado do item especificado.

COleControlContainer::FreezeAllEvents

Determina se o contêiner ignorará ou aceitará os eventos dos sites de controle anexados.

void FreezeAllEvents(BOOL bFreeze);

Parâmetros

bFreeze
Um valor diferente de zero, se os eventos forem processados. Caso contrário, 0.

Comentários

Observação

O controle não precisa interromper o disparo de eventos, se isso for solicitado pelo contêiner de controle. Ele poderá continuar disparando, mas todos os eventos subsequentes serão ignorados pelo contêiner de controle.

COleControlContainer::GetAmbientProp

Recupera o valor de uma propriedade de ambiente especificada.

virtual BOOL GetAmbientProp(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvarResult);

Parâmetros

pSite
Um ponteiro para um site de controle em que a propriedade ambiente será recuperada.

dispid
A ID de expedição da propriedade de ambiente desejada.

pVarResult
Um ponteiro para o valor da propriedade de ambiente.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

COleControlContainer::GetDlgItem

Recupera um ponteiro para o controle especificado ou janela filho em uma caixa de diálogo ou outra janela.

virtual CWnd* GetDlgItem(int nID) const;

virtual void GetDlgItem(
    int nID,
    HWND* phWnd) const;

Parâmetros

Nid
Identificador do item de caixa de diálogo a ser recuperado.

phWnd
Um ponteiro para o identificador do objeto de janela do item de caixa de diálogo especificado.

Valor de retorno

Um ponteiro para a janela do item de caixa de diálogo.

COleControlContainer::GetDlgItemInt

Recupera o valor do texto traduzido do controle especificado.

virtual UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans,
    BOOL bSigned) const;

Parâmetros

Nid
O identificador do controle.

lpTrans
Ponteiro para uma variável booliana que recebe um valor de êxito/falha da função (TRUE indica êxito, FALSE indica falha).

bSigned
Especifica se a função deve examinar o texto quanto a um sinal de menos no início e retornar um valor inteiro com sinal, se encontrar um. Se o parâmetro bSigned for TRUE, especificando que o valor a ser recuperado é um valor inteiro com sinal, converta o valor retornado em um tipo int. Para obter informações de erro estendidas, chame GetLastError.

Valor de retorno

Se tiver êxito, a variável apontada por lpTrans será definida como TRUE e o valor retornado será o valor traduzido do texto de controle.

Se a função falhar, a variável apontada por lpTrans será definida como FALSE e o valor retornado será zero. Observe que, como zero é um valor traduzido possível, um valor retornado de zero por si só não indica falha.

Se lpTrans for NULL, a função não retornará informações sobre êxito ou falha.

Comentários

A função converte o texto recuperado, tirando os espaços adicionais no início do texto e convertendo os dígitos decimais. A função interrompe a conversão, quando chega ao final do texto ou encontra um caractere não numérico.

Essa função retornará zero, se o valor traduzido for maior que INT_MAX (para números assinados) ou UINT_MAX (para números não assinados).

COleControlContainer::GetDlgItemText

Recupera o texto do controle especificado.

virtual int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

Parâmetros

Nid
O identificador do controle.

lpStr
Ponteiro para o texto do controle.

nMaxCount
Especifica o comprimento máximo, em caracteres, da cadeia de caracteres a ser copiada para o buffer apontado por lpStr. Se o tamanho da cadeia de caracteres exceder o limite, a cadeia de caracteres será truncada.

Valor de retorno

Se a função tiver êxito, o valor retornado especificará o número de caracteres copiados para o buffer, sem incluir o caractere nulo de encerramento.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

COleControlContainer::HandleSetFocus

Determina se o contêiner lida com mensagens WM_SETFOCUS.

virtual BOOL HandleSetFocus();

Valor de retorno

Um valor diferente de zero, se o contêiner lidar com mensagens WM_SETFOCUS. Caso contrário, zero.

COleControlContainer::HandleWindowlessMessage

Processa as mensagens de janela para controles sem janelas.

virtual BOOL HandleWindowlessMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Parâmetros

message
O identificador da mensagem de janela, fornecido pelo Windows.

wParam
Parâmetro da mensagem, fornecido pelo Windows. Especifica informações adicionais específicas da mensagem. O conteúdo desse parâmetro depende do valor do parâmetro message.

lParam
Parâmetro da mensagem, fornecido pelo Windows. Especifica informações adicionais específicas da mensagem. O conteúdo desse parâmetro depende do valor do parâmetro message.

plResult
Código de resultado do Windows. Especifica o resultado do processamento da mensagem e depende da mensagem enviada.

Valor de retorno

Diferente de zero se bem-sucedido; caso contrário, zero.

Comentários

Substitua essa função para personalizar o tratamento das mensagens de controle sem janela.

COleControlContainer::IsDlgButtonChecked

Determina o estado do botão especificado.

virtual UINT IsDlgButtonChecked(int nIDButton) const;

Parâmetros

nIDButton
O identificador do controle de botão.

Valor de retorno

O valor retornado de um controle de botão criado com o estilo BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON ou BS_3STATE. Um dos seguintes pode ser feito:

  • BST_CHECKED Botão está marcado.

  • BST_INDETERMINATE O botão está esmaecido, indicando um estado indeterminado (aplica-se somente caso o botão tenha o estilo BS_3STATE ou BS_AUTO3STATE).

  • BST_UNCHECKED O botão foi limpo.

Comentários

Se o botão for um controle de três estados, a função membro determinará se ele está esmaecido, selecionado ou nenhum dos dois.

COleControlContainer::m_crBack

A cor da tela de fundo do contêiner.

COLORREF m_crBack;

COleControlContainer::m_crFore

A cor de primeiro plano do contêiner.

COLORREF m_crFore;

COleControlContainer::m_listSitesOrWnds

Uma lista dos sites de controle hospedados pelo contêiner.

CTypedPtrList<CPtrList, COleControlSiteOrWnd*> m_listSitesOrWnds;

COleControlContainer::m_nWindowlessControls

O número de controles sem janela hospedados pelo contêiner de controle.

int m_nWindowlessControls;

COleControlContainer::m_pOleFont

Um ponteiro para a fonte OLE do site de controle personalizado.

LPFONTDISP m_pOleFont;

COleControlContainer::m_pSiteCapture

Ponteiro para o site de controle de captura.

COleControlSite* m_pSiteCapture;

COleControlContainer::m_pSiteFocus

Um ponteiro para o site de controle que tem um foco de entrada no momento.

COleControlSite* m_pSiteFocus;

COleControlContainer::m_pSiteUIActive

Um ponteiro para o site de controle ativado in-loco.

COleControlSite* m_pSiteUIActive;

COleControlContainer::m_pWnd

Um ponteiro para o objeto de janela associado ao contêiner.

CWnd* m_pWnd;

COleControlContainer::m_siteMap

O mapa do site.

CMapPtrToPtr m_siteMap;

COleControlContainer::OnPaint

Chamado pela estrutura para lidar com as solicitações WM_PAINT.

virtual BOOL OnPaint(CDC* pDC);

Parâmetros

pDC
Um ponteiro para o contexto do dispositivo usado pelo contêiner.

Valor de retorno

Um valor diferente de zero, se a mensagem foi tratada. Caso contrário, zero.

Comentários

Substitua essa função para personalizar esse processo de pintura.

COleControlContainer::OnUIActivate

Chamado pela estrutura quando o site de controle, apontado pelo pSite, está prestes a ser ativado in-loco.

virtual void OnUIActivate(COleControlSite* pSite);

Parâmetros

pSite
Um ponteiro para o site de controle prestes a ser ativado in-loco.

Comentários

Ativação in-loco significa que o menu principal do contêiner é substituído por um menu composto in-loco.

COleControlContainer::OnUIDeactivate

Chamado pela estrutura quando o site de controle, apontado pelo pSite, está prestes a ser desativado.

virtual void OnUIDeactivate(COleControlSite* pSite);

Parâmetros

pSite
Um ponteiro para o site de controle prestes a ser desativado.

Comentários

Quando essa notificação for recebida, o contêiner deverá reinstalar a interface do usuário e usar o foco.

COleControlContainer::ScrollChildren

Chamado pela estrutura quando as mensagens de rolagem são recebidas em uma janela filho.

virtual void ScrollChildren(
    int dx,
    int dy);

Parâmetros

dx
A quantidade, em pixels, de rolagem ao longo do eixo x.

dy
A quantidade, em pixels, de rolagem ao longo do eixo y.

COleControlContainer::SendDlgItemMessage

Envia uma mensagem para o controle especificado.

virtual LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parâmetros

Nid
Especifica o identificador do controle que recebe a mensagem.

message
Especifica a mensagem a ser enviada.

wParam
Especifica informações adicionais específicas da mensagem.

lParam
Especifica informações adicionais específicas da mensagem.

COleControlContainer::SetDlgItemInt

Define o texto de um controle em uma caixa de diálogo para a representação de cadeia de caracteres de um valor inteiro especificado.

virtual void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned);

Parâmetros

Nid
O identificador do controle.

nValue
O valor inteiro a ser exibido.

bSigned
Especifica se o parâmetro nValue está assinado ou não assinado. Se esse parâmetro for TRUE, nValue será assinado. Se esse parâmetro for TRUE e nValue for menor que zero, um sinal de menos será colocado antes do primeiro dígito na cadeia de caracteres. Se esse parâmetro for FALSE, nValue não será assinado.

COleControlContainer::SetDlgItemText

Define o texto do controle especificado, usando o texto encontrado em lpszString.

virtual void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Parâmetros

Nid
O identificador do controle.

lpszString
Ponteiro para o texto do controle.

Confira também

Classe CCmdTarget
Gráfico da hierarquia
Classe COleControlSite
Classe COccManager