0

タブ コントロールとその上にいくつかのタブ項目を作成しました。タブ コントロール (アイテムのない領域) の背景の見栄えを良くしたい。そこで、GradientFill を使用してタブ コントロールを描画しました。しかし、これを行うと、タブ項目が消えます。これは、親子ウィンドウの場合とは異なります。タブ コントロールの背景を変更したい場合は、タブ項目も描画する必要がありますか?

コードは次のとおりです。

switch(message) {
    case WM_PAINT:
        HDC hdc;
        PAINTSTRUCT ps;
        RECT rectTabControl;

        hdc = BeginPaint(hwnd, &ps);

        GetClientRect(hwnd, &rectTabControl);

        TRIVERTEX        vert[2] ;
        GRADIENT_RECT    gRect;

        vert [0] .x      = 0;
        vert [0] .y      = 0;
        vert [0] .Red    = 0x1000;
        vert [0] .Green  = 0x0000;
        vert [0] .Blue   = 0x0000;
        vert [0] .Alpha  = 0x0000;

        vert [1] .x      = rectTabControl.right;
        vert [1] .y      = rectTabControl.bottom; 
        vert [1] .Red    = 0xff00;
        vert [1] .Green  = 0x0000;
        vert [1] .Blue   = 0x0000;
        vert [1] .Alpha  = 0x0000;

        gRect.UpperLeft  = 0;
        gRect.LowerRight = 1;

        GradientFill(hdc,vert,2,&gRect,1,GRADIENT_FILL_RECT_H);

        EndPaint(hwnd, &ps);
        return 0;
}
4

1 に答える 1

1

「タブ コントロールの背景を変更したい場合は、タブ項目も描画する必要がありますか?」

はい。

于 2012-05-24T22:24:33.363 に答える