@James Рад помочь. Не забудьте принять решение.

аюсь нарисовать свои собственные элементы управления с помощью библиотеки uxTheme в Windows, и я не могу понять, почему мой элемент управления не похож на обычный элемент управления Windows, который (предположительно) использует ту же тему, что и я:

На изображении выше показан стандартный Windows ComboBox (вверху) и мой пользовательский элемент управления, нарисованный с использованием темы ComboBox (внизу). Я не могу понять, почему граница моего элемента управления отличается по форме и цвету от стандартного элемента управления.

В моем конструкторе класса я открываю данные темы:

mComboTheme = OpenThemeData( hwnd, L"COMBOBOX" );

А затем в обработчике для WM_PAINT я просто рисую две части компонентов ComboBox:

case WM_PAINT:
{
    PAINTSTRUCT ps;
    HDC         hdc;
    RECT        client;

    if( GetUpdateRect( hwnd, &ps.rcPaint, false ))
    {
        hdc = BeginPaint( hwnd, &ps );
        GetClientRect( hwnd, &client );

        if( IsThemeBackgroundPartiallyTransparent( mComboTheme, CP_BACKGROUND, CBXS_HOT ))
        {
            DrawThemeParentBackground( hwnd, hdc, &ps.rcPaint );
        }
        DrawThemeBackground( mComboTheme, hdc, CP_BACKGROUND, CBXS_HOT, &client, &ps.rcPaint );
        client.left = client.right - 20;
        DrawThemeBackground( mComboTheme, hdc, CP_DROPDOWNBUTTONRIGHT, CBXSR_HOT, &client, ps.rcPaint );

        EndPaint( *this, &ps );
    }
    break;
}

Будем весьма благодарны за любые предложения относительно того, почему эти два элемента управления не выглядят одинаково.

Спасибо,

Джеймс

Ответы на вопрос(1)

Ваш ответ на вопрос