ATLBUTTON, exemple d'attributs : illustre un bouton avec des bitmaps pour différents états
Mise à jour : novembre 2007
L'exemple d'attributs ATLBUTTON crée un bouton qui s'affiche avec trois bitmaps différentes en fonction de son état. Ces bitmaps représentent l'état inactif, l'état pointé (lorsque la souris passe au-dessus du bouton) et l'état actif du bouton. Des bitmaps par défaut sont incluses dans l'exemple, mais vous pouvez substituer ces propriétés pour utiliser vos propres bitmaps.
Cet exemple illustre également l'utilisation de plusieurs attributs IDL, COM et du compilateur. L'attribut dispinterface est utilisé pour placer l'interface de dispatch _ATLButton dans le fichier atlbutn.idl. L'attribut propputref permet l'utilisation de références à la place de valeurs dans les fonctions PictureStatic, PictureHover et PicturePush. L'attribut version est illustré, parmi d'autres attributs fréquemment utilisés.
Note de sécurité : |
---|
Cet exemple de code est fourni pour illustrer un concept et ne doit pas être utilisé dans des applications ou des sites Web, car il peut ne pas illustrer les pratiques de programmation les plus sûres. Microsoft n'assume aucune responsabilité pour tout dommage indirect ou consécutif en cas d'utilisation de l'exemple de code à des fins autres que celles prévues. |
Pour obtenir des exemples et des instructions d'installation :
Dans le menu ? (Aide) de Visual Studio, cliquez sur Exemples.
Pour plus d'informations, consultez Recherche des fichiers d'exemple.
La liste la plus récente et la plus complète d'exemples est disponible en ligne à partir de la page Visual Studio 2008 Samples.
Des exemples sont également disponibles sur le disque dur de votre ordinateur. Des exemples et un fichier Readme sont stockés par défaut dans un dossier sous \Program Files\Visual Studio 9.0\Samples\. Pour les éditions Express de Visual Studio, tous les exemples sont disponibles en ligne.
Génération et exécution de l'exemple
Pour générer et exécuter cet exemple
Ouvrez le fichier solution atlbutn.sln.
Dans le menu Générer, cliquez sur Générer la solution.
Ouvrez le conteneur ActiveX Control Test Container et insérez le contrôle (objet CAtlButton). Pour plus d'informations sur l'accès à l'outil Test Container et son utilisation pour tester un contrôle, consultez Test des propriétés et des événements à l'aide de Test Container.
Ouvrez la boîte de dialogue Propriétés du contrôle, puis associez une image à chacune des propriétés répertoriées en accédant au dossier exemple, en sélectionnant un fichier BMP, puis en cliquant sur Appliquer.
L'image affichée dans le contrôle change selon que le pointeur se trouve dessus ou que vous cliquez sur le contrôle.
Attributs
Cet exemple utilise les attributs suivants :
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
Mots clés
Cet exemple utilise les mots clés suivants :
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
Remarque : |
---|
Certains exemples, tels que celui-ci, n'ont pas été modifiés pour refléter les changements apportés aux Assistants, aux bibliothèques et au compilateur Visual C++, mais ils illustrent bien l'exécution de la tâche souhaitée. |