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

18.09.2009
9
0
32
Ялта
#1
Есть такая проблема, элементы CCheckListBox в 3-м состоянии не верно отображаются под windows 8 если выбрана обычная тема, если выбрать классическую или контрастную всё становится нормально.
В 3-м состоянии элемент CheckBox должен отображаться как серый квадратик с галкой,


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


Кто-нибудь уже сталкивался с таким поведением?
 
18.09.2009
9
0
32
Ялта
#2
Получилось так:

Получилось сделать так...
Определил функцию заполнения 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 );
}
}
}