Freigeben über


Gewusst wie: Hosten eines ActiveX-Steuerelements in einer Dialogfeldressource

Aktualisiert: November 2007

Wenn Sie Visual Studio verwenden, um ActiveX-Steuerelemente für Geräte zu entwickeln, müssen Sie einige zusätzliche Schritte ausführen. Der Ressourcen-Editor setzt voraus, dass das Steuerelement auf dem Desktopcomputer registriert ist, damit es zur Entwurfszeit bearbeitet werden kann. Darüber hinaus können auf dem Desktopcomputer keine Gerätesteuerelemente registriert werden. Die folgenden Schritte stellen eine alternative Entwurfszeiterfahrung dar. In den folgenden Verfahren wird davon ausgegangen, dass das ActiveX-Steuerelementprojekt und das Hostprojekt bereits vorhanden sind und dass das ActiveX-Steuerelement in einem Dialogfeld gehostet wird.

Hinweis:

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

So fügen Sie ActiveX-Steuerelemente mithilfe des Dialog-Editors hinzu

  1. Öffnen Sie im Dialog-Editor das Dialogfeld des Hostprojekts.

  2. Ziehen Sie ein benutzerdefiniertes Steuerelement aus der Toolbox auf das Dialogfeld.

  3. Positionieren Sie das benutzerdefinierte Steuerelement im Dialogfeld, und passen Sie seine Größe an, um festzulegen, wie das ActiveX-Steuerelement angezeigt werden soll.

  4. Klicken Sie mit der rechten Maustaste auf das benutzerdefinierte Steuerelement, und klicken Sie dann auf Eigenschaften.

  5. Fügen Sie in der Class-Eigenschaft die GUID des ActiveX-Steuerelements ein. Denken Sie an die geschweiften Klammern "{…}".

  6. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Projektname.RC2, und klicken Sie danach auf Code anzeigen.

  7. Fügen Sie im Abschnitt Fügen Sie hier manuell bearbeitete Ressourcen hinzu den folgenden Code hinzu. Das benutzerdefinierte Steuerelement benötigt einen Init-Abschnitt für das Dialogfeld, um ordnungsgemäß angezeigt zu werden. Der Inhalt des eigentlichen Init-Abschnitts für das Dialogfeld wird nicht verwendet. Denken Sie daran, <Projektname> durch den Namen des Projekts zu ersetzen.

    IDD_<project name>_DIALOG DLGINIT BEGIN IDC_CUSTOM1, 0x376, 22, 0 0x0000, 0x0000, 0x0800, 0x0000, 0x094d, 0x0000, 0x043d, 0x0000, 0x0013, 0xcdcd, 0xcdcd, 0
    
  8. Erstellen Sie das Hostprojekt, und führen Sie es aus. Denken Sie daran, das ActiveX-Steuerelement auf dem Zielgerät bereitzustellen und zu registrieren.

So verwenden Sie eine alternative Methode zum Hosten von ActiveX-Steuerelementen

  1. Registrieren Sie die AtlAxWin80-Fensterklasse durch Aufruf von AtlAxWinInit an einem Punkt in der Anwendung.

    ATL-Anwendungen führen dies im Modulinitialisierungscode durch. Win32-Anwendungen sollten diese Funktion in der WinMain-Funktion aufrufen. Folgen Sie bei MFC-Anwendungen diesen Schritten:

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Klasse.

    2. Klicken Sie auf ATL-Unterstützung zu MFC hinzufügen (unter der Überschrift Intelligente Geräte).

    3. Fügen Sie den AtlAxWinInit-Aufruf der obersten Ebene der InitInstance-Methode der Hostanwendungsklasse hinzu.

  2. In einer Dialogfeldressource (z. B. einem ATL-Dialogfeld, einem zusammengesetzten Steuerelement oder einem MFC-Dialogfeld):

    1. Ziehen Sie ein benutzerdefiniertes Steuerelement aus der Toolbox.

    2. Legen Sie die Fensterklasseneigenschaft auf AtlAxWin80 fest.

    3. Legen Sie die Beschriftung für die GUID in geschweiften Klammern oder die Programm-ID fest.

  3. Fügen Sie für MFC atl.lib als zusätzliche Linkeingabe hinzu.

  4. Fügen Sie für MFC der Option Bereitstellung | Zusätzliche Dateien diese Zeilen hinzu. Die Zeilen sind für dynamische DLLs (Dynamic Link Libraries) bereits vorhanden, müssen für MFC-SLLs (Statically Linked Libraries) aber hinzugefügt werden.

    msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    msvcr80d.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    

Siehe auch

Weitere Ressourcen

Programmieren für Geräte mit Visual C++