Share via


SUBEDIT-Beispiel für Attribute: Klassen ein Standard-Windows-Steuerelement

Das Beispiel für SUBEDIT-Attribute veranschaulicht ein ATL-Steuerelement erstellen, mit denen Klassen, die standardmäßigen Windows-Edit gesteuert.

SUBEDIT-Beispiel ist die nicht attributierte Version dieses Beispiels.

SicherheitshinweisSicherheitshinweis

Dieser Beispielcode soll ein Konzept veranschaulichen, und es wird nur den Code, der für dieses Konzept relevant sind. Möglicherweise erfüllt dieser nicht die Sicherheitsanforderungen für eine bestimmte Umgebung, und er sollte nicht genau wie dargestellt verwendet werden. Wir empfehlen, Sicherheits- und Fehlerbehandlungscode hinzuzufügen, um Ihre Projekte sicherer und stabiler zu machen. Microsoft stellt diesen Beispielcode "Wie besehen"keine Garantien.

So erhalten Sie Beispiele und Anweisungen für deren Installation:

Um Beispiele von Visual Studio zuzugreifen

  • im Menü Hilfe Menü klicken Beispiele.

    Standardmäßig sind die Beispiele in installiert. Laufwerk: \Programme\Microsoft visual Studio 10.0\Samples\.

  • Die neueste Version dieses Beispiels und eine Liste der anderen Beispiele finden Sie unter Visual Studio Samples auf der MSDN-Website.

Erstellen und Ausführen des Beispiels

So erstellen und in diesem Beispiel führen

  1. Öffnen Sie die Projektmappendatei SubEdit.sln.

  2. erstellen Sie Menü, klicken Sie auf erstellen.

  3. Nachdem das Beispiel erstellt wurde, öffnen Sie in Ihrem Webbrowser, AtlEdit.htm, und probieren Sie das Steuerelement.

Sie können das Steuerelement im Testcontainer für ActiveX-Steuerelemente testen testen, indem Sie die ATLEdit-Klasse. Details zu den Testcontainer zugreifen und es zum Testen eines Steuerelements verwenden finden Sie unter Testen von Eigenschaften und Ereignissen mit Testcontainer.

Erstellen einer übergeordneten Klasse eines Windows-Steuerelements

ATL bietet die Möglichkeit ein Steuerelement erstellen, mit denen Klassen ein standard Windows gesteuert. Erstellen einer übergeordneten Klasse können Sie eine Fensterklasse erstellen, die basiert auf einer vorhandenen Klasse, aber eine andere Fensterprozedur verwendet. Anschließend erstellen Sie ein Fenster basierend auf dieser neuen Fensterklasse. Superclass ein Steuerelement, wenn Nachrichten werden zunächst durch eine ATL-Meldungszuordnung verarbeitet, bevor an die ursprüngliche Fensterprozedur des Steuerelements gesendet werden. Dadurch können Sie das Standardverhalten des Windows-Standardsteuerelemente ändern.

Wenn Sie den ATL-Steuerelemente-Assistenten, verwenden um ein Steuerelement zu erstellen, können Sie ein Steuerelement basierend auf einer Standardfensterklasse hinzuzufügen. In diesem Fall fügt der Assistent eine Membervariable vom Typ „ CContainedWindow für das ActiveX-Steuerelement-Klasse. CContainedWindow::Create erstellt dann ein Fenster, dass Klassen im Fenster Sie Klasse angegeben. Dieses Fenster verwendet CContainedWindow::WindowProc, um die Nachrichten durch eine Meldungszuordnung weiterzuleiten. Wenn eine Meldung weiter verarbeitet, wird die ursprüngliche Fensterprozedur der Fensterklasse gesendet.

Überprüfen des Beispielcodes (AtlEdit.h)

Der Konstruktor für die CAtlEdit Klasse legt die Membervariable m_bWindowOnly auf TRUE. Dadurch wird das Steuerelement nie als fensterloses Steuerelement aktiviert wird.

Die Membervariable CContainedWindowm_EditCtrl, wird vom Konstruktor CAtlEdit initialisiert. CContainedWindow-Konstruktor hat drei Parameter: der Name der Fensterklasse werden übergeordnete Klasse zu einem ("EDIT in diesem Fall");Ein Zeiger auf die CAtlEdit-Klasse, die die Meldungszuordnung; enthältund die Bezeichner der Meldungszuordnung, die die-m_EditCtrl-Meldungen verarbeiten wird. Standardmäßig verwendet m_EditCtrl eine alternative Meldungszuordnung, die mit dem Makro ALT_MSG_MAP deklariert.

Die Standardmeldungszuordnung deklariert die Namen der Handlerfunktionen für WM_CREATE und WM_CTLCOLOREDIT Nachrichten an das Steuerelement CAtlEdit gesendet. Der Handler OnCreate ruft CContainedWindow::Createm_EditCtrl des Fenster erstellen möchten. OnCtlColorEdit -Handler gibt eine neue Hintergrund- und Textfarben für m_EditCtrl.

Die alternative Meldungszuordnung deklariert eine Handlerfunktion für WM_CHAR Nachrichten an m_EditCtrl gesendet. Dieser Handler akzeptiert nur Zeichen, keine Sonderzeichen oder Zahlen und übergibt dann die WM_CHAR-Nachricht an die ursprüngliche Fensterprozedur, die durch die Windows-Klasse definiert.

Attribute

In diesem Beispiel werden die folgenden Attribute verwendet:

coclass , com_interface_entry, default, dual, emitidl, helpstring, implements_category, module, object, pointer_default, progid, registration_script, threading, uuid, version, vi_progid

Schlüsselwörter

In diesem Beispiel werden die folgenden Schlüsselwörter verwendet:

CComCoClass; CComControl; CComModule::GetClassObject; CComModule::GetLockCount; CComModule::Init; CComModule::RegisterServer; CComModule::Term; CComModule::UnregisterServer; CComObjectRoot; CContainedWindow::DefWindowProc; DisableThreadLibraryCalls; GetStockObject; GetWindowRect; IDataObjectImpl; IDispatchImpl; IOleControlImpl; IOleInPlaceActiveObjectImpl; IOleInPlaceObjectWindowlessImpl; IOleInPlaceObjectWindowlessImpl::SetObjectRects; IOleObjectImpl; IPersistStorageImpl; IPersistStreamInitImpl; IProvideClassInfo2Impl; IQuickActivateImpl; ISpecifyPropertyPagesImpl; IViewObjectExImpl; SetBkColor; SetTextColor; SetWindowPos

Hinweis

Einige Beispiele wie diesen, wurden nicht geändert, um Änderungen in der Visual C++-Assistenten, Bibliotheken und Compiler, demonstrieren aber dennoch wie Sie die gewünschte Aufgabe durchführen.

Siehe auch

Weitere Ressourcen

ATL-Attributbeispiele