次の方法で共有


ツールバーでホットトラッキングを使用する方法

マウス ポインターがアイテムの上に来ると、がホットになります。 ホット トラッキングが有効になっている場合、ホット アイテムが強調表示されます。 TBSTYLE_FLAT スタイルで作成されたツールバー、またはビジュアル スタイルを使用するツールバーでは、既定でホットトラッキングがサポートされます。

ホットトラッキングでは、画像リストを作成する必要があります。そのため、TB_ADDBITMAP メッセージまたは CreateToolbarEx 関数を使用してもツールバーを作成できません。

ツールバー ボタンの上にマウス ポインターを置くと、ボタンが強調表示されます。 次の図は、ホットトラッキングが有効になっているツールバーを示しています。スクリーン ショットが撮影された際、マウス ポインターは [保存] ボタンの上にありました。

screen shot of a dialog box with a three-item toolbar; the selected icon is outlined

コントロールの状態が変化したときにツールバー ボタンのビットマップを変更する場合は、さまざまなイメージをイメージ リストに格納します。 たとえば、一部のアプリケーションには、選択すると色付きになる黒と白のツールバー ボタンがあります。 2 つの異なるイメージがイメージ リストに格納されます。 ツールバーでは、最大 3 つのイメージ リストの使用がサポートされています。 通常、アプリケーションには画像の既定のリスト、無効なリスト、ホットトラッキング リストがあります。 ホット ツールバーのイメージ リストを設定および取得するには、TB_SETHOTIMAGELIST および TB_GETHOTIMAGELIST メッセージを使用します。

知っておくべきこと

テクノロジ

前提条件

  • C/C++
  • Windows ユーザー インターフェイス プログラミング

手順

ツールバーでホットトラッキングを使用する

次のコード例では、ホット ボタンのイメージ リストを作成、塗りつぶし、割り当てます。

// Create the image list, himlHot.
g_himlHot = ImageList_Create(MYICON_CX,MYICON_CY,ILC_COLOR8,0,4);

// Load a bitmap from a resource file, and add the images to the image list.
// Note that the bitmap contains four images.

hBitmapHot = LoadBitmap(g_hinst, MAKEINTRESOURCE(IDB_HOT));

ImageList_Add(g_himlHot, hBitmapHot, NULL);
   
// Set the image list. 
SendMessage(hwndTB, TB_SETHOTIMAGELIST, 0, (LPARAM)g_himlHot);
   
// Loop to fill the array of TBBUTTON structures.  
for(i=0;i<MAX_BUTTONS;i++)
{
    tbArray[i].iBitmap   = i;                   // Bitmap from image list.
    tbArray[i].idCommand = IDM_BUTTONSTART + i;
    tbArray[i].fsState   = TBSTATE_ENABLED;
    tbArray[i].fsStyle   = BTNS_DROPDOWN;
    tbArray[i].dwData    = 0;
    tbArray[i].iString   = i;
}

DeleteObject(hBitmapHot);    // Delete the loaded bitmap.

ツール バー コントロールの使用

Windows コモン コントロールのデモ (CppWindowsCommonControls)