- if ( !::DrawFrameControl(hdc, &rectCheck, DFC_BUTTON, state) )
- {
- wxLogLastError(_T("DrawFrameControl(DFC_BUTTON)"));
- }
-#else // XP version
- wxUxThemeEngine *themeEngine = wxUxThemeEngine::GetIfActive();
- if ( !themeEngine )
- return false;
-
- wxUxThemeHandle theme(this, L"BUTTON");
- if ( !theme )
- return false;
-
- int state;
- switch ( Get3StateValue() )
- {
- case wxCHK_CHECKED:
- state = CBS_CHECKEDNORMAL;
- break;
-
- case wxCHK_UNDETERMINED:
- state = CBS_MIXEDNORMAL;
- break;
-
- default:
- wxFAIL_MSG( _T("unexpected Get3StateValue() return value") );
- // fall through
-
- case wxCHK_UNCHECKED:
- state = CBS_UNCHECKEDNORMAL;
- break;
- }
-
- if ( !IsEnabled() )
- state += CBS_DISABLED_OFFSET;
- else if ( m_isPressed )
- state += CBS_PRESSED_OFFSET;
- else if ( m_isHot )
- state += CBS_HOT_OFFSET;
-
- HRESULT hr = themeEngine->DrawThemeBackground
- (
- theme,
- hdc,
- BP_CHECKBOX,
- state,
- &rectCheck,
- NULL
- );
- if ( FAILED(hr) )
- {
- wxLogApiError(_T("DrawThemeBackground(BP_CHECKBOX)"), hr);
- }
-#endif // 0/1
+ wxRendererNative::Get().
+ DrawCheckBox(this, dc, wxRectFromRECT(rectCheck), flags);