Share via


ATLBUTTON 属性サンプル : 状態に対応したビットマップを使用するボタンの例

更新 : 2007 年 11 月

ATLBUTTON 属性サンプルは、状態に応じて 3 つの異なるビットマップを使用して表示されるボタンを作成します。ボタンには、アンプッシュ状態、ホバー状態 (マウスをボタンの上に移動したとき)、およびプッシュ状態を表すビットマップがあります。サンプルには既定のビットマップが使われていますが、これらのプロパティをオーバーライドして独自のビットマップを使用することもできます。

このサンプルには、いくつかの IDL、COM、およびコンパイラの各属性の使用例も示されています。dispinterface 属性を使用して、ディスパッチ インターフェイス _ATLButton を atlbutn.idl ファイルに配置します。propputref 属性を使用して、PictureStaticPictureHoverPicturePush の各関数の値の代わりに参照を使用できるようにします。version 属性は、頻繁に使用されるその他の属性と共に示されています。

957sb6sy.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

サンプルとそのインストール手順を取得するには

  • Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

このサンプルをビルドして実行するには

  1. ソリューション ファイル atlbutn.sln を開きます。

  2. [ビルド] メニューの [ソリューションのビルド] をクリックします。

  3. ActiveX コントロール テスト コンテナを開き、コントロール (CAtlButton Object) を挿入します。テスト コンテナにアクセスしてコントロールをテストする方法の詳細については、「テスト コンテナでのプロパティとイベントのテスト」を参照してください。

  4. コントロールの [プロパティ] ダイアログ ボックスを開きます。サンプル フォルダを参照し、BMP ファイルを選択し、[適用] をクリックして、イメージを一覧の各プロパティに関連付けます。

  5. マウス ポインタをイメージの上に置いた場合や、コントロールがクリックされた場合は、コントロールでのイメージの表示状態が変わります。

属性

このサンプルでは次の属性を使用します。

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

キーワード

このサンプルでは、次のキーワードを使用します。

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

957sb6sy.alert_note(ja-jp,VS.90).gifメモ :

このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。

参照

その他の技術情報

ATL 属性のサンプル