Partilhar via


Classe COleControlContainer

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Funciona como um contentor de controlo para controlos ActiveX.

Sintaxe

class COleControlContainer : public CCmdTarget

Membros

Construtores Públicos

Nome Description
COleControlContainer::COleControlContainer Constrói um COleControlContainer objeto.

Métodos Públicos

Nome Description
COleControlContainer::AttachControlSite Cria um site de controlo, alojado pelo contentor.
COleControlContentor::BroadcastAmbientPropertyChange Informa todos os controlos alojados de que uma propriedade ambiente mudou.
COleControlContainer::CheckDlgButton Modifica o controlo de botões especificado.
COleControlContainer::CheckRadioButton Seleciona o botão de opção especificado de um grupo.
COleControlContainer::CreateControl Cria um controlo ActiveX alojado.
COleControlContainer::CreateOleFont Cria uma fonte OLE.
COleControlContainer::FindItem Devolve o local personalizado do controlo especificado.
COleControlContentor::FreezeAllEvents Determina se o local de controlo está a aceitar eventos.
COleControlContainer::GetAmbientProp Recupera a propriedade ambiente especificada.
COleControlContainer::GetDlgItem Recupera o controlo de diálogo especificado.
COleControlContainer::GetDlgItemInt Recupera o valor do controlo de diálogo especificado.
COleControlContainer::GetDlgItemText Recupera a legenda do controlo de diálogo especificado.
COleControlContainer::HandleSetFocus Determina se o contentor lida com WM_SETFOCUS mensagens.
COleControlContainer::HandleWindowLessMessage Trata de mensagens enviadas para um controlo sem janelas.
COleControlContainer::IsDlgButtonCheck Determina o estado do botão especificado.
COleControlContainer::OnPaint Chamei para repintar uma parte do recipiente.
COleControlContainer::OnUIActivate Chamada quando um controlo está prestes a ser ativado.
COleControlContainer::OnUIDeactivate Chamado quando um controlo está prestes a ser desativado.
COleControlContainer::ScrollChildren É chamada pelo framework quando as mensagens de scroll são recebidas de uma janela filha.
COleControlContainer::SendDlgItemMessage Envia uma mensagem para o controlo especificado.
COleControlContainer::SetDlgItemInt Define o valor do controlo especificado.
COleControlContainer::SetDlgItemText Define o texto do controlo especificado.

Membros de Dados Públicos

Nome Description
COleControlContainer::m_crBack A cor de fundo do recipiente.
COleControlContainer::m_crFore A cor em primeiro plano do recipiente.
COleControlContainer::m_listSitesOrWnds Uma lista dos locais de controlo suportados.
COleControlContainer::m_nWindowlessControls O número de controlos sem janelas alojados.
COleControlContainer::m_pOleFont Um apontador para a fonte OLE do site de controlo personalizado.
COleControlContainer::m_pSiteCapture Apontar para o local de controlo de captura.
COleControlContainer::m_pSiteFocus Aponta para o controlo que atualmente tem o foco de entrada.
COleControlContainer::m_pSiteUIActive Aponta para o controlo que está atualmente ativado.
COleControlContainer::m_pWnd Apontar para a janela que implementa o contentor de controlo.
COleControlContainer::m_siteMap O mapa do local.

Observações

Isto é feito fornecendo suporte para um ou mais sites de controlo ActiveX (implementados por COleControlSite). COleControlContainer implementa totalmente as interfaces IOleInPlaceFrame e IOleContainer , permitindo que os controlos ActiveX contidos cumpram as suas qualificações como itens no local.

Comumente, esta classe é usada em conjunto com COccManager e COleControlSite para implementar um contentor de controlo ActiveX personalizado, com sites personalizados para um ou mais controlos ActiveX.

Hierarquia de herança

CObject

CCmdTarget

COleControlContainer

Requerimentos

Cabeçalho: afxocc.h

COleControlContainer::AttachControlSite

Chamado pelo framework para criar e anexar um local de controlo.

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

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

Parâmetros

pWnd
Um ponteiro para um CWnd objeto.

nIDC
O ID do controlo a anexar.

Observações

Desative esta função se quiser personalizar este processo.

Observação

Use a primeira forma desta função se estiver a ligar estaticamente à biblioteca MFC. Usa o segundo formulário se estiveres a ligar dinamicamente à biblioteca MFC.

COleControlContentor::BroadcastAmbientPropertyChange

Informa todos os controlos alojados de que uma propriedade ambiente mudou.

virtual void BroadcastAmbientPropertyChange(DISPID dispid);

Parâmetros

dispid
O ID de despacho da propriedade ambiente está a ser alterado.

Observações

Esta função é chamada pelo framework quando uma propriedade ambiente mudou de valor. Substitua esta função para personalizar este comportamento.

COleControlContainer::CheckDlgButton

Modifica o estado atual do botão.

virtual void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Parâmetros

nIDButton
O ID do botão a ser modificado.

nCheck
Especifica o estado do botão. Pode ser um dos seguintes:

  • BST_CHECKED Define o estado do botão para verificado.

  • BST_INDETERMINATE Define o estado do botão para cinzento, indicando um estado indeterminado. Use este valor apenas se o botão tiver o estilo BS_3STATE ou BS_AUTO3STATE.

  • BST_UNCHECKED Define o estado do botão para limpo.

COleControlContainer::CheckRadioButton

Seleciona um botão de acesso especificado num grupo e limpa os botões restantes do grupo.

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

Parâmetros

nIDFirstButton
Especifica o identificador do primeiro botão de rádio do grupo.

nIDLastButton
Especifica o identificador do último botão de acesso do grupo.

nIDCheckButton
Especifica o identificador do botão de rádio a verificar.

COleControlContainer::COleControlContainer

Constrói um COleControlContainer objeto.

explicit COleControlContainer(CWnd* pWnd);

Parâmetros

pWnd
Um apontador para a janela pai do contentor de controlo.

Observações

Depois de o objeto ter sido criado com sucesso, adicione um site de controlo personalizado com uma chamada para AttachControlSite.

COleControlContainer::CreateControl

Cria um controlo ActiveX, alojado pelo objeto especificado COleControlSite .

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 janela que representa o controlo.

CLSID
O ID de classe único do controlo.

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

dwStyle
Estilos do Windows. Os estilos disponíveis estão listados na secção de Observações .

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

nID
Especifica o ID da janela filho do controlo.

pPersistir
Um apontador para um CFile que contém o estado persistente do controlo. O valor padrão é NULL, indicando que o controlo se inicializa sem restaurar o seu estado a partir de qualquer armazenamento persistente. Se não for NULL, deve ser um apontador para um CFileobjeto derivado em que contém os dados persistentes do controlo, sob a forma de um fluxo ou de um armazenamento. Estes dados poderiam ter sido guardados numa ativação anterior do cliente. O CFile pode conter outros dados, mas deve ter o seu ponteiro de leitura-escrita definido para o primeiro byte de dados persistentes no momento da chamada para CreateControl.

bArmazenamento
Indica se os dados em pPersist devem ser interpretados como IStorage ou IStream dados. Se os dados em pPersist forem um armazenamento, o bStorage deve ser VERDADEIRO. Se os dados em pPersist forem um fluxo, o bStorage deve ser FALSO. O valor padrão é FALSE.

bstrLicKey
Dados opcionais da chave da licença. Estes dados são necessários apenas para criar controlos que exijam uma chave de licença em tempo de execução. Se o controlo suportar licenciamento, deve fornecer uma chave de licença para que a criação do controlo tenha sucesso. O valor padrão é NULL.

ppNewSite
Um ponteiro para o local de controlo existente que irá alojar o controlo que está a ser criado. O valor padrão é NULL, indicando que um novo local de controlo será criado automaticamente e anexado ao novo controlo.

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

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

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Apenas um subconjunto das flags dwStyle do Windows é suportado por CreateControl:

  • WS_VISIBLE Cria uma janela que é inicialmente visível. É necessário se quiseres que o controlo seja visível imediatamente, como janelas normais.

  • WS_DISABLED Cria uma janela que está inicialmente desativada. Uma janela desativada não pode receber entrada do utilizador. Pode ser definido se o controlo tiver uma propriedade Ativada.

  • WS_BORDER Cria uma janela com uma borda fina. Pode ser definido se o controlo tiver uma propriedade BorderStyle.

  • WS_GROUP Especifica o primeiro controlo de um grupo de controlos. O utilizador pode alterar o foco do teclado de um controlo no grupo para o seguinte usando as teclas de direção. Todos os controlos definidos com o estilo WS_GROUP após o primeiro controlo pertencem ao mesmo grupo. O controlo seguinte com o estilo WS_GROUP termina o grupo e inicia o grupo seguinte.

  • WS_TABSTOP Especifica um controlo que pode receber o foco do teclado quando o utilizador pressiona a tecla TAB. Pressionar a tecla TAB muda o foco do teclado para o próximo controlo do estilo WS_TABSTOP.

Usa a segunda sobrecarga para criar controlos 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 contentor de controlo.

COleControlContainer::FindItem

Encontra o site personalizado que aloja o item especificado.

virtual COleControlSite* FindItem(UINT nID) const;

Parâmetros

nID
O identificador do item a encontrar.

Valor de retorno

Um apontador para o site personalizado do item especificado.

COleControlContentor::FreezeAllEvents

Determina se o contentor irá ignorar eventos dos locais de controlo anexados ou aceitá-los.

void FreezeAllEvents(BOOL bFreeze);

Parâmetros

bFreeze
Diferente de zero se os eventos serão processados; caso contrário, 0.

Observações

Observação

O controlo não é obrigado a parar os eventos de disparo se solicitado pelo contentor de controlo. Pode continuar a disparar, mas todos os eventos subsequentes serão ignorados pelo contentor de controlo.

COleControlContainer::GetAmbientProp

Recupera o valor de uma propriedade ambiente especificada.

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

Parâmetros

pSite
Um ponteiro para um local de controlo de onde a propriedade ambiente será recuperada.

dispid
O ID de despacho da propriedade ambiente desejada.

pVarResult
Um indicador do valor da propriedade ambiente.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

COleControlContainer::GetDlgItem

Recupera um ponteiro para a janela de controlo ou filho especificada numa caixa de diálogo ou noutra janela.

virtual CWnd* GetDlgItem(int nID) const;

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

Parâmetros

nID
Identificador do item de diálogo a recuperar.

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

Valor de retorno

Um apontador para a janela do elemento de diálogo.

COleControlContainer::GetDlgItemInt

Recupera o valor do texto traduzido do controlo dado.

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

Parâmetros

nID
O identificador do controlo.

lpTrans
Apontador para uma variável booleana que recebe um valor de sucesso/falha de função (TRUE indica sucesso, FALSE indica falha).

bAssinado
Especifica se a função deve examinar o texto para um sinal negativo no início e devolver um valor inteiro com sinal se encontrar um. Se o parâmetro bSigned for TRUE, especificando que o valor a recuperar é um valor inteiro assinado, conjure o valor de retorno para um int tipo. Para obter informações detalhadas sobre erros, ligue para o GetLastError.

Valor de retorno

Se for bem-sucedido, a variável apontada por lpTrans é definida como TRUE, e o valor de retorno é o valor traduzido do texto de controlo.

Se a função falhar, a variável apontada por lpTrans é definida como FALSE, e o valor de retorno é zero. Note-se que, uma vez que zero é um valor possível traduzido, um valor de retorno zero não indica por si só falha.

Se o lpTrans for NULL, a função não devolve qualquer informação sobre sucesso ou falha.

Observações

A função traduz o texto recuperado removendo quaisquer espaços extra no início do texto e convertendo depois os dígitos decimais. A função deixa de traduzir quando chega ao fim do texto ou encontra um carácter não numérico.

Esta função devolve zero se o valor traduzido for maior que INT_MAX (para números com sinal) ou UINT_MAX (para números sem sinal).

COleControlContainer::GetDlgItemText

Recupera o texto do controlo indicado.

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

Parâmetros

nID
O identificador do controlo.

lpStr
Aponta para o texto do controlo.

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

Valor de retorno

Se a função tiver sucesso, o valor de retorno especifica o número de caracteres copiados para o buffer, excluindo o carácter nulo que termina.

Se a função falhar, o valor de retorno será zero. Para obter informações detalhadas sobre erros, ligue para o GetLastError.

COleControlContainer::HandleSetFocus

Determina se o contentor lida com WM_SETFOCUS mensagens.

virtual BOOL HandleSetFocus();

Valor de retorno

Diferente de zero se o contentor tratar WM_SETFOCUS mensagens; caso contrário, zero.

COleControlContainer::HandleWindowLessMessage

Processa mensagens de janela para controlos sem janelas.

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

Parâmetros

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

wParam
Parâmetro da mensagem; fornecido pelo Windows. Especifica informação adicional específica da mensagem. O conteúdo deste parâmetro depende do valor do parâmetro da mensagem .

lParam
Parâmetro da mensagem; fornecido pelo Windows. Especifica informação adicional específica da mensagem. O conteúdo deste parâmetro depende do valor do parâmetro da mensagem .

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

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, zero.

Observações

Substitua esta função para personalizar o tratamento das mensagens de controlo sem janelas.

COleControlContainer::IsDlgButtonCheck

Determina o estado do botão especificado.

virtual UINT IsDlgButtonChecked(int nIDButton) const;

Parâmetros

nIDButton
O identificador do controlo do botão.

Valor de retorno

O valor de retorno, a partir de um botão criado com os estilos BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON ou BS_3STATE. Pode ser um dos seguintes:

  • BST_CHECKED Botão está marcado.

  • BST_INDETERMINATE Botão está cinzento, indicando um estado indeterminado (aplica-se apenas se o botão tiver o estilo BS_3STATE ou BS_AUTO3STATE).

  • BST_UNCHECKED Botão está limpo.

Observações

Se o botão for um controlo de três estados, a função elemento determina se está escurecido, verificado ou nenhum dos dois.

COleControlContainer::m_crBack

A cor de fundo do recipiente.

COLORREF m_crBack;

COleControlContainer::m_crFore

A cor em primeiro plano do recipiente.

COLORREF m_crFore;

COleControlContainer::m_listSitesOrWnds

Uma lista dos locais de controlo alojados pelo contentor.

CTypedPtrList<CPtrList, COleControlSiteOrWnd*> m_listSitesOrWnds;

COleControlContainer::m_nWindowlessControls

O número de controlos sem janelas alojados pelo contentor de controlo.

int m_nWindowlessControls;

COleControlContainer::m_pOleFont

Um apontador para a fonte OLE do site de controlo personalizado.

LPFONTDISP m_pOleFont;

COleControlContainer::m_pSiteCapture

Apontar para o local de controlo de captura.

COleControlSite* m_pSiteCapture;

COleControlContainer::m_pSiteFocus

Um apontador para o local de controlo que atualmente tem foco de entrada.

COleControlSite* m_pSiteFocus;

COleControlContainer::m_pSiteUIActive

Um apontador para o local de controlo ativado.

COleControlSite* m_pSiteUIActive;

COleControlContainer::m_pWnd

Um ponteiro para o objeto janela associado ao contentor.

CWnd* m_pWnd;

COleControlContainer::m_siteMap

O mapa do local.

CMapPtrToPtr m_siteMap;

COleControlContainer::OnPaint

Chamado pelo framework para lidar com pedidos WM_PAINT.

virtual BOOL OnPaint(CDC* pDC);

Parâmetros

pDC
Um apontador para o contexto do dispositivo usado pelo contentor.

Valor de retorno

Não nula se a mensagem foi tratada; caso contrário, zero.

Observações

Desative esta função para personalizar o processo de pintura.

COleControlContainer::OnUIActivate

É chamado pela estrutura quando o local de controlo, apontado pelo pSite, está prestes a ser ativado no local.

virtual void OnUIActivate(COleControlSite* pSite);

Parâmetros

pSite
Um indicador para o local de controlo prestes a ser ativado.

Observações

A ativação no local significa que o menu principal do contentor é substituído por um menu composto no local.

COleControlContainer::OnUIDeactivate

Chamada pelo framework quando o local de controlo, apontado pelo pSite, está prestes a ser desativado.

virtual void OnUIDeactivate(COleControlSite* pSite);

Parâmetros

pSite
Um apontador para o local de controlo prestes a ser desativado.

Observações

Quando esta notificação é recebida, o contentor deve reinstalar a sua interface de utilizador e assumir o foco.

COleControlContainer::ScrollChildren

É chamada pelo framework quando as mensagens de scroll são recebidas de uma janela filha.

virtual void ScrollChildren(
    int dx,
    int dy);

Parâmetros

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

Dy
A quantidade, em pixels, de scroll ao longo do eixo y.

COleControlContainer::SendDlgItemMessage

Envia uma mensagem para o controlo especificado.

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

Parâmetros

nID
Especifica o identificador do controlo que recebe a mensagem.

mensagem
Especifica a mensagem a enviar.

wParam
Especifica informação adicional específica da mensagem.

lParam
Especifica informação adicional específica da mensagem.

COleControlContainer::SetDlgItemInt

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

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

Parâmetros

nID
O identificador do controlo.

nValor
O valor inteiro a ser apresentado.

bAssinado
Especifica se o parâmetro nValue é assinado ou não. Se este parâmetro for VERDADEIRO, nValor é assinado. Se este parâmetro for TRUE e nValor for menor que zero, um sinal menos é colocado antes do primeiro dígito da cadeia. Se este parâmetro for FALSO, nValor é sem sinal.

COleControlContainer::SetDlgItemText

Define o texto do controlo especificado, usando o texto contido em lpszString.

virtual void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Parâmetros

nID
O identificador do controlo.

lpszString
Aponta para o texto do controlo.

Consulte também

Classe CCmdTarget
Gráfico de Hierarquia
Classe COleControlSite
Classe COccManager