Ejemplo de atributos ATLBUTTON: muestra un botón con mapas de bits para diferentes estados

Actualización: noviembre 2007

El ejemplo de atributos ATLBUTTON crea un botón que se muestra con uno de entre tres mapas de bits diferentes, según su estado. El botón presenta un mapa de bits para el estado sin presionar, otro para el estado en el que el puntero del mouse (ratón) se desplaza sobre el botón y otro para el estado presionado. El ejemplo incluye mapas de bits predeterminados, pero estas propiedades se pueden reemplazar para utilizar mapas de bits personalizados.

Este ejemplo también muestra el uso de varios atributos IDL, COM y del compilador. El atributo dispinterface se utiliza para colocar la interfaz de envío _ATLButton en el archivo atlbutn.idl. El atributo propputref se utiliza para permitir el uso de referencias en vez de valores en las funciones PictureStatic, PictureHover y PicturePush. Asimismo, se hace una demostración del atributo version, entre otros atributos de uso habitual.

Nota de seguridad:

Este código de ejemplo se proporciona para ilustrar un concepto y no debe utilizarse en aplicaciones o sitios Web, ya que quizás no ilustre las prácticas de codificación más seguras. Microsoft no asume ninguna responsabilidad por daños incidentales o consecuentes en caso de que el código de ejemplo se utilice para propósitos distintos de aquellos para los que se concibió.

Para obtener ejemplos e instrucciones para su instalación:

  • En el menú Ayuda de Visual Studio, haga clic en Ejemplos.

    Para obtener más información, vea Localizar archivos de ejemplo.

  • La lista de ejemplos completa con la versión más reciente está disponible en línea en la página Visual Studio 2008 Samples.

  • También encontrará ejemplos en el disco duro de su equipo. De manera predeterminada, los ejemplos y el archivo Léame se copian en una carpeta bajo \Archivos de programa\Visual Studio 9.0\Samples\. Para las versiones Express de Visual Studio, todos los ejemplos están en línea.

Generar y ejecutar el ejemplo

Para generar y ejecutar este ejemplo

  1. Abra el archivo de solución atlbutn.sln.

  2. En el menú Generar, haga clic en Generar solución.

  3. Abra ActiveX Control Test Container e inserte el control (objeto CAtlButton). Para obtener más detalles sobre cómo obtener acceso a Test Container y utilizarlo para probar un control, vea Probar propiedades y eventos con Test Container.

  4. Abra el cuadro de diálogo Propiedades del control y asocie una imagen con cada una de las propiedades; para ello, busque la carpeta de ejemplos, seleccione un archivo BMP y haga clic en Aplicar.

  5. Observe cómo cambia la imagen que se muestra en el control al desplazar el puntero por encima o si se hace clic en el control.

Atributos

En este ejemplo se utilizan los atributos siguientes:

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

Palabras clave

En este ejemplo se utilizan las siguientes palabras clave:

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

Nota:

Algunos ejemplos, como éste, no se han modificado para reflejar los cambios en los asistentes, las bibliotecas y el compilador de Visual C++, pero, aun así, muestran cómo realizar la tarea deseada.

Vea también

Otros recursos

Ejemplos de atributos ATL