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
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