Cchecklistbox Неверно Отображается Под Windows 8

Тема в разделе "MS Visual C++", создана пользователем virtpro, 26 июн 2014.

  1. virtpro

    virtpro Member

    Регистрация:
    18 сен 2009
    Сообщения:
    9
    Симпатии:
    0
    Есть такая проблема, элементы CCheckListBox в 3-м состоянии не верно отображаются под windows 8 если выбрана обычная тема, если выбрать классическую или контрастную всё становится нормально.
    В 3-м состоянии элемент CheckBox должен отображаться как серый квадратик с галкой,
    [​IMG]

    под обычной темой он отображается как просто серый квадратик
    [​IMG]

    Кто-нибудь уже сталкивался с таким поведением?
     
  2. virtpro

    virtpro Member

    Регистрация:
    18 сен 2009
    Сообщения:
    9
    Симпатии:
    0
    Получилось так:

    Получилось сделать так...
    Определил функцию заполнения CheckListBox : void FillControls()
    в неё вставил код сбрасывания темы

    Код (C++):
    void ResetTheme()
    {
    const HMODULE hMod=GetModuleHandle(TEXT("uxtheme.dll"));
    if( hMod )
    {
    typedef HRESULT (__stdcall *PFUNC)(HWND,LPCWSTR,LPCWSTR);
    PFUNC pFun = (PFUNC)GetProcAddress(hMod, TEXT( "SetWindowTheme" ));
    if( pFun )
    {
    const HRESULT hRes =pFun(GetSafeHwnd(), L"", L"");
    ASSERT( S_OK == hRes );
    }
    }
    }
     
Загрузка...

Поделиться этой страницей