Freigeben über


ActiveX-Steuerelementcontainer: Verwenden von Steuerelementen in einem Nicht-Dialogfeld Container

In einigen Anwendungen, z. B. einer SDI- oder MDI-Anwendung, sollten Sie ein Steuerelement in einem Fenster der Anwendung einbetten.Die Create-Memberfunktion der Wrapperklasse von Visual C++ eingefügt, kann eine Instanz des Steuerelements, ohne dass ein Dialogfeld für dynamisch erstellen.

Die Create-Memberfunktion besitzt die folgenden Parameter:

  • lpszWindowName
    Ein Zeiger auf den in der Text- oder Caption-Eigenschaft anzuzeigenden Text des Steuerelements (sofern vorhanden).

  • dwStyle
    Windows-Formate.Eine vollständige Liste finden Sie CWnd::CreateControl.

  • rect
    Gibt die Größe und die Position des Steuerelements an.

  • pParentWnd
    Gibt das übergeordnete Fenster des Steuerelements, normalerweise CDialog an.Er darf nicht NULL sein.

  • nID
    Gibt die Steuerelement-ID an und kann vom Container verwendet werden, um das Steuerelement zu verweisen.

Ein Beispiel für die Verwendung dieser Funktion, um ein ActiveX-Steuerelement dynamisch erstellen würde in einer Formularansicht einer SDI-Anwendung sein.Sie könnten eine Instanz des Steuerelements im WM_CREATE-Handler der Anwendung auf Erstellen.

Für dieses Beispiel ist CMyView die Hauptversionsnummer Ansichtsklasse, ist CCirc die Wrapperklasse, und CIRC.H ist der Header (. H. der Wrapperklasse Datei)

Diese Funktion zu implementieren ist ein vier Schritte.

So fügen Sie ein ActiveX-Steuerelement in einem Nicht Dialogfeld Fenster Dynamisches Erstellen

  1. Fügen Sie in CIRC.H CMYVIEW.H, kurz vor der CMyView-Klassendefinition ein:

    #include "circ.h"
    
  2. Fügen Sie eine Membervariable (vom Typ CCirc) dem geschützten Abschnitt der CMyView-Klassendefinition in CMYVIEW.H hinzu:

    class CMyView : public CView
    {
    
    
    ...
    
    
    protected:
       CCirc m_myCtl;
    public:
       afx_msg void OnViewCircdlg();
    };
    
  3. Fügen Sie einen WM_CREATE Meldungshandler CMyView-Klasse hinzu.

  4. In der Handlerfunktion machen CMyView::OnCreate, einen Aufruf der Create-Funktion des Steuerelements mithilfe des this Zeigers als übergeordnetes Fenster:

    int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
       if (CView::OnCreate(lpCreateStruct) == -1)
          return -1;
    
       m_myCtl.Create(NULL, WS_VISIBLE, CRect(50,50,100,100), this, 0);
       m_myCtl.SetCaption(_T("Control created"));
    
       return 0;
    }
    
  5. Erstellen Sie das Projekt neu.Ein Circ-Steuerelement wird dynamisch erstellt, wenn die Ansicht der Anwendung erstellt wird.

Siehe auch

Konzepte

ActiveX-Steuerelementcontainer