Partilhar via


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.

Confira também

Classe CWinFormsDialog
Classe CWinFormsView