バディ ウィンドウを使用する方法
他のコントロールをトラックバーのバディ ウィンドウとして設定することにより、トラックバーの末尾にラベルとしてそれらのコントロールを自動的に配置できます。
次の図は、水平トラックバーと垂直トラックバーを示しています。両方とも、静的コントロールをバディ ウィンドウとして使用しています。
知っておくべきこと
テクノロジ
前提条件
- C/C++
- Windows ユーザー インターフェイス プログラミング
手順
バディ ウィンドウを使用する
次のコード例では、図に示すバディ ウィンドウを作成します。
void LabelTrackbarsWithBuddies(HWND hDlg)
{
HWND hwndTrackbar;
HWND hwndBuddy;
const int staticWidth = 50;
const int staticHeight = 20;
//======================================================
// For horizontal Trackbar.
hwndTrackbar = GetDlgItem(hDlg, IDC_SLIDER1);
hwndBuddy = CreateWindowEx(0, L"STATIC", L"Left", SS_RIGHT | WS_CHILD | WS_VISIBLE,
0, 0, staticWidth, staticHeight, hDlg, NULL, g_hInst, NULL);
SendMessage(hwndTrackbar, TBM_SETBUDDY, (WPARAM)TRUE, (LPARAM)hwndBuddy);
//-------------------------------------------------
hwndBuddy = CreateWindowEx(0, L"STATIC", L"Right", SS_LEFT | WS_CHILD | WS_VISIBLE,
0, 0, staticWidth, staticHeight, hDlg, NULL, g_hInst, NULL);
SendMessage(hwndTrackbar, TBM_SETBUDDY, (WPARAM)FALSE, (LPARAM)hwndBuddy);
//======================================================
// For vertical Trackbar.
hwndTrackbar = GetDlgItem(hDlg, IDC_SLIDER2);
hwndBuddy = CreateWindowEx(0, L"STATIC", L"Top", SS_CENTER | WS_CHILD | WS_VISIBLE,
0, 0, staticWidth, staticHeight, hDlg, NULL, g_hInst, NULL);
SendMessage(hwndTrackbar, TBM_SETBUDDY, (WPARAM)TRUE, (LPARAM)hwndBuddy);
//-------------------------------------------------
hwndBuddy = CreateWindowEx(0, L"STATIC", L"Bottom", SS_CENTER | WS_CHILD | WS_VISIBLE,
0, 0, staticWidth, staticHeight, hDlg, NULL, g_hInst, NULL);
SendMessage(hwndTrackbar, TBM_SETBUDDY, (WPARAM)FALSE, (LPARAM)hwndBuddy);
}
解説
IDC_SLIDER1 および IDC_SLIDER2 は、リソース エディターで作成されたトラック バーです。
関連トピック