Share via


ATLBUTTON 属性サンプル:別の状態のビットマップとボタンを示します

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

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

セキュリティに関するメモセキュリティに関するメモ

このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。

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

Visual Studio のサンプルにアクセスするには

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

    既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。

  • このサンプルの最新版および他のサンプルの一覧については、MSDN Web サイト上で Visual Studio サンプル 」を参照してください。

サンプルのビルドと実行

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

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

  2. From the Build menu, click Build Solution.

  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

Keywords

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

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

注意

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

参照

その他の技術情報

ATL 属性のサンプル