Beispiel für ATLBUTTON-Attribute: Demonstriert eine Schaltfläche mit Bitmaps für unterschiedliche Zustandswerte
Aktualisiert: November 2007
Das Beispiel für ATLBUTTON-Attribute erstellt eine Schaltfläche, die in Abhängigkeit von ihrem jeweiligen Zustands mit einem von drei verschiedenen Bitmaps angezeigt wird. Die Schaltfläche besitzt ein Bitmap für den ungedrückten Zustand, den Schwebezustand (wenn der Mauszeiger über die Schaltfläche bewegt wird) und für den gedrückten Zustand. Standardbitmaps sind im Beispiel enthalten. Sie können diese Eigenschaften jedoch überschreiben, wenn Sie eigene Bitmaps verwenden möchten.
In diesem Beispiel wird außerdem die Verwendung mehrerer IDL-, COM- und Compilerattribute erläutert. Das Disp-Schnittstellenattribut wird dazu verwendet, die Dispatchschnittstelle _ATLButton in der Datei atlbutn.idlzu platzieren. Das propputref-Attribut ermöglicht in der PictureStatic-Funktion, der PictureHover-Funktion und der PicturePush-Funktion die Verwendung von Verweisen anstelle von Werten. Neben anderen häufig verwendeten Attributen wird das version-Attribut demonstriert.
![]() |
---|
Dieser Beispielcode dient dazu, ein Konzept zu veranschaulichen. Er sollte nicht für Anwendungen oder Websites verwendet werden, da dieser Code unter Umständen nicht die sicherste Codierungstechnik darstellt. Microsoft übernimmt keine Haftung für beiläufig entstandene Schäden oder Folgeschäden, falls der Beispielcode nicht bestimmungsgemäß verwendet wird. |
So rufen Sie Beispiele und Anweisungen für ihre Installation ab
Klicken Sie in Visual Studio im Menü Hilfe auf Beispiele.
Weitere Informationen finden Sie unter Suchen von Beispieldateien.
Die neueste Version und vollständige Liste mit Beispielen ist online unter Visual Studio 2008 Samples verfügbar.
Sie können auch Beispiele auf der Festplatte des Computers suchen. Standardmäßig werden Beispiele und eine Infodatei in einen Ordner unter \Programme\Visual Studio 9.0\Samples\ kopiert. Für Express Editions von Visual Studio sind alle Beispiele online verfügbar.
Erstellen und Ausführen des Beispiels
So erstellen Sie dieses Beispiel und führen es aus
Öffnen Sie die Projektmappendatei atlbutn.sln.
Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Öffnen Sie den Testcontainer für ActiveX-Steuerelemente, und fügen Sie das Steuerelement (CAtlButton-Objekt) ein. Ausführliche Informationen dazu, wie Sie auf den Testcontainer zugreifen und diesen zum Testen eines Steuerelements verwenden, finden Sie unter Testen von Eigenschaften und Ereignissen mit dem Testcontainer.
Öffnen Sie für das Steuerelement das Dialogfeld Eigenschaften, und verknüpfen Sie dann ein Bild mit jeder der aufgelisteten Eigenschaften. Dazu navigieren Sie zum Beispielordner, wählen eine BMP-Datei aus und klicken auf Übernehmen.
Achten Sie darauf, wie das Steuerelementbild sich ändert, wenn der Zeiger darüber bewegt bzw. auf das Steuerelement geklickt wird.
Attribute
In diesem Beispiel werden die folgenden Attribute verwendet:
coclass, default, dispinterface, dll, dual, event_source, helpstring, id, implements_category, in, module, name, object, out, pointer_default, progid, propget, propput, propputref, registration_script, retval, support_error_info, uuid**,** version,vi_progid
Schlüsselwörter
In diesem Beispiel werden die folgenden Schlüsselwörter verwendet:
Apartment; ATLTRACE; AtlWaitWithMessageLoop; BEGIN_COM_MAP; BEGIN_CONNECTION_POINT_MAP; BEGIN_MSG_MAP; BEGIN_OBJECT_MAP; BEGIN_PROPERTY_MAP; CComCoClass; CComControl; CComControl::FireViewChange; CComControl::InPlaceActivate; CComModule::GetClassObject; CComModule::GetLockCount; CComModule::Init; CComModule::RegisterServer; CComModule::Term; CComModule::UnregisterServer; CComObjectRoot; CloseHandle; CoGetInterfaceAndReleaseStream; CoInitialize; COleControl::OnClick; COM_INTERFACE_ENTRY; COM_INTERFACE_ENTRY_IMPL_IID; CoMarshalInterThreadInterfaceInStream; CONNECTION_POINT_ENTRY; CProxy_ATLButton; CreateDIBPalette; CreatePalette; CreateThread; CTimer; DECLARE_HANDLE; DECLARE_REGISTRY_RESOURCEID; DIBNumColors; DisableThreadLibraryCalls; DLL_PROCESS_DETACH; END_COM_MAP; END_CONNECTION_POINT_MAP; END_MSG_MAP; END_OBJECT_MAP; END_PROPERTY_MAP; GetCursorPos; GetFileSize; GetWindow; GlobalAlloc; GlobalFree; GlobalLock; GlobalSize; GlobalUnlock; IConnectionPointContainerImpl; IConnectionPointImpl; IDispatchImpl; IObjectSafetyImpl; IOleControlImpl; IOleInPlaceActiveObjectImpl; IOleInPlaceObjectWindowlessImpl; IOleInPlaceObjectWindowlessImpl::InPlaceDeactivate; IOleObjectImpl; IPersistPropertyBagImpl; IPersistStreamInitImpl; IProvideClassInfo2Impl; IViewObjectExImpl; LPLOGPALETTE; MESSAGE_HANDLER; OBJECT_ENTRY; PaintDIB; PaletteSize; PROP_ENTRY; PtInRect; PutImage; ReadDIBFile; ReadFile; RealizePalette; ScreenToClient; SelectPalette; SetDIBitsToDevice; SetStretchBltMode; Sleep; StretchDIBits; TimerOff; TimerOn; Unlock; USES_CONVERSION
![]() |
---|
In diesem und einigen anderen Beispielen wurden die Änderungen an den Visual C++-Assistenten, -Bibliotheken und -Compilern noch nicht nachvollzogen. Sie demonstrieren aber dennoch, wie Sie die gewünschte Aufgabe durchführen können. |