1

タブを作成しました

INITCOMMONCONTROLSEX icc;
        icc.dwSize = sizeof(INITCOMMONCONTROLSEX);
        icc.dwICC = (DWORD)ICC_TAB_CLASSES;
        InitCommonControlsEx(&icc);
        icc.dwICC = (DWORD)ICC_LISTVIEW_CLASSES;
        InitCommonControlsEx(&icc);
        hwndTab = CreateWindow(WC_TABCONTROL,L"",WS_CHILD|WS_VISIBLE|WS_DLGFRAME|WS_CLIPSIBLINGS
    ,10,10,780,271,hwnd,(HMENU)3,hInstance,NULL);
        TCITEM tcitem; tcitem.mask = TCIF_TEXT;
        tcitem.pszText = L"Tab1";
        TabCtrl_InsertItem(hwndTab,0,&tcitem);

タブに静的コントロールを配置します

CreateWindow(L"STATIC",L"Static control 1",
        WS_CHILD|WS_VISIBLE,50,30,65,24,hwndTab,(HMENU)NULL,hInstance,NULL);

ただし、静的コントロール 1 の背景は灰色です。どうすれば色を付けることができますか。ありがとう

4

2 に答える 2

2

静的コントロールをタブの子にしたため、WM_CTLCOLORSTATIC メッセージがタブ コントロールに送信されます。タブ コントロールをサブクラス化すると、このメッセージをキャッチしてその色を変更できます。ただし、ビジュアル スタイルが有効になっている場合、タブ コントロールは単色ではなくグラデーションに近いため、一致する無地の色を返しても必ずしも見栄えがよくないことに注意してください。

于 2012-08-28T07:43:49.207 に答える