Classe CWinFormsControl
Fornece a funcionalidade básica para hospedagem de um controle do Windows Forms.
Sintaxe
template<class TManagedControl>
class CWinFormsControl : public CWnd
Parâmetros
TManagedControl
Um controle do Windows Forms do .NET Framework a ser exibido no aplicativo MFC.
Membros
Construtores públicos
Nome | Descrição |
---|---|
CWinFormsControl::CWinFormsControl | Constrói um objeto de wrapper de controle do Windows Forms do MFC. |
Métodos públicos
Nome | Descrição |
---|---|
CWinFormsControl::CreateManagedControl | Cria um controle do Windows Forms em um contêiner do MFC. |
CWinFormsControl::GetControl | Recupera um ponteiro para o controle do Windows Forms. |
CWinFormsControl::GetControlHandle | Recupera um identificador para o controle do Windows Forms. |
Operadores públicos
Nome | Descrição |
---|---|
CWinFormsControl::operator -> |
Substitui CWinFormsControl::GetControl em expressões. |
CWinFormsControl::operator TManagedControl^ | Converte um tipo como um ponteiro para um controle do Windows Forms. |
Comentários
A classe CWinFormsControl
fornece a funcionalidade básica para hospedagem de um controle do Windows Forms.
Para mais informações sobre como usar Windows Forms, confira Como usar um controle de usuário do Windows Form no MFC.
Seu código MFC não deve armazenar em cache identificadores de janela (geralmente armazenados em m_hWnd
). Algumas propriedades de controle do Windows Forms exigem que o Window
do Win32 subjacente seja destruído e recriado usando DestroyWindow
e CreateWindow
. A implementação do Windows Forms do MFC manipula os eventos Destroy
e Create
dos controles para atualizar o membro m_hWnd
.
Observação
A integração do Windows Forms com o MFC funciona apenas em projetos que se vinculam dinamicamente ao MFC (projetos em que AFXDLL está definido).
Requisitos
Cabeçalho: afxwinforms.h
CWinFormsControl::CreateManagedControl
Cria um controle do Windows Forms em um contêiner do MFC.
inline BOOL CreateManagedControl(
System::Type^ pType,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
int nID)
inline BOOL CreateManagedControl(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
int nID);
inline BOOL CreateManagedControl(
DWORD dwStyle,
int nPlaceHolderID,
CWnd* pParentWnd);
inline BOOL CreateManagedControl(
typename TManagedControl^ pControl,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
int nID);
Parâmetros
pType
O tipo de dados do controle a ser criado. Deve ser um tipo de dados Type.
dwStyle
O estilo da janela a ser aplicado ao controle. Especifique uma combinação de Estilos de janela. Atualmente, há suporte apenas para os seguintes estilos: WS_TABSTOP, WS_VISIBLE, WS_DISABLED e WS_GROUP.
rect
Uma estrutura RECT que define as coordenadas dos cantos superior esquerdo e inferior direito do controle (somente primeira sobrecarga).
nPlaceHolderID
O identificador do controle do titular do local estático colocado no Editor de Recursos. O controle do Windows Forms recém-criado substitui o controle estático, assumindo sua posição, ordem z e estilos (somente segunda sobrecarga).
pParentWnd
Um ponteiro para a janela pai.
Nid
O número da ID do recurso a ser atribuído ao controle recém-criado.
pControle
Uma instância de um controle do Windows Forms a ser associada ao objeto CWinFormsControl (somente quarta sobrecarga).
Valor de retorno
Se tiver êxito, retornará um valor diferente de zero. Se não tiver êxito, retornará zero.
Comentários
Esse método cria uma instância de um controle do Windows Forms do .NET Framework em um contêiner do MFC.
A primeira sobrecarga do método aceita um pType do tipo de dados .NET Framework para que o MFC possa criar uma instância de um novo objeto desse tipo. pType deve ser de um tipo de dados Type.
A segunda sobrecarga do método cria um controle do Windows Forms com base no parâmetro de modelo TManagedControl
da classe CWinFormsControl
. O tamanho e a posição do controle baseiam-se na estrutura RECT
passada para o método. Somente dwStyle tem relevância para os estilos.
A terceira sobrecarga do método cria um controle do Windows Forms que substitui um controle estático, destruindo-o e assumindo a sua posição, ordem z e estilos. O controle estático serve apenas como um espaço reservado para o controle do Windows Forms. Ao criar o controle, essa sobrecarga combina os estilos do dwStyle com os estilos de recursos do controle estático.
A quarta sobrecarga do método permite que você passe em um controle do Windows Forms já instanciado o pControl que o MFC encapsulará. Ele deve ser do mesmo tipo que o parâmetro de modelo TManagedControl
da classe CWinFormsControl
.
Para amostras sobre como usar os controles do Windows Forms, confira Como usar um controle de usuário do Windows Form no MFC.
CWinFormsControl::CWinFormsControl
Constrói um objeto de wrapper de controle do Windows Forms do MFC.
CWinFormsControl();
Comentários
O controle do Windows Forms é instanciado quando você chama CWinFormsControl::CreateManagedControl.
CWinFormsControl::GetControl
Recupera um ponteiro para o controle do Windows Forms.
inline TManagedControl^ GetControl() const;
Valor de retorno
Retorna um ponteiro para o controle do Windows Forms.
Exemplo
Consulte CWinFormsControl::CreateManagedControl.
CWinFormsControl::GetControlHandle
Recupera um identificador para o controle do Windows Forms.
inline HWND GetControlHandle() const;
Valor de retorno
Retorna um identificador para o controle do Windows Forms.
Comentários
GetControlHandle
é um método auxiliar que retorna o identificador de janela armazenado nas propriedades de controle do .NET Framework. O valor do identificador de janela é copiado para CWnd::m_hWnd durante a chamada para CWnd::Attach.
CWinFormsControl::operator ->
Substitui CWinFormsControl::GetControl em expressões.
inline TManagedControl^ operator->() const;
Comentários
Esse operador fornece uma sintaxe conveniente que substitui GetControl
em expressões.
Para mais informações sobre o Windows Forms, confira Como usar um controle de usuário do Windows Form no MFC.
CWinFormsControl::operator TManagedControl^
Converte um tipo como um ponteiro para um controle do Windows Forms.
inline operator TManagedControl^() const;
Comentários
Esse operador passa CWinFormsControl<TManagedControl>
para funções que aceitam um ponteiro para um controle do Windows Forms.