Здравствуйте, Mr.TurboDune, Вы писали:
[]
И еще чутка кода:
CImageList ImageList;
CClientDC ClientDC(m_TreeViewCtrl);
CDC CompatibleDC;
CompatibleDC.CreateCompatibleDC(ClientDC);
CBitmap Bitmap;
Bitmap.CreateCompatibleBitmap(ClientDC, iSize * 3, iSize);
HBITMAP hOldBitmap = CompatibleDC.SelectBitmap(Bitmap);
const COLORREF clrBgnd = ::GetSysColor(COLOR_WINDOW);//m_TreeViewCtrl.GetBkColor();
CompatibleDC.FillSolidRect(0, 0, iSize * 3, iSize, clrBgnd);
CRect rect(0, 0, iSize, iSize);
CTheme Theme;
if(CTheme::IsThemingSupported() && Theme.OpenThemeData(m_hWnd, L"Button"))
{
rect.OffsetRect(iSize, 0);
Theme.DrawThemeBackground(CompatibleDC, BP_CHECKBOX, CBS_UNCHECKEDNORMAL, rect, NULL);
rect.OffsetRect(iSize, 0);
Theme.DrawThemeBackground(CompatibleDC, BP_CHECKBOX, CBS_CHECKEDNORMAL, rect, NULL);
rect.OffsetRect(iSize, 0);
Theme.DrawThemeBackground(CompatibleDC, BP_CHECKBOX, CBS_MIXEDNORMAL, rect, NULL);
}
else
{
rect.OffsetRect(iSize, 0);
CompatibleDC.DrawFrameControl(rect, DFC_BUTTON, DFCS_BUTTONCHECK | DFCS_FLAT);
rect.OffsetRect(iSize, 0);
CompatibleDC.DrawFrameControl(rect, DFC_BUTTON, DFCS_BUTTONCHECK | DFCS_CHECKED | DFCS_FLAT);
rect.OffsetRect(iSize, 0);
CompatibleDC.DrawFrameControl(rect, DFC_BUTTON, DFCS_BUTTON3STATE | DFCS_INACTIVE | DFCS_CHECKED | DFCS_FLAT);
}
CompatibleDC.SelectBitmap(hOldBitmap);
ImageList.Add(Bitmap, clrBgnd);
m_TreeViewCtrl.SetImageList(ImageList.Detach(), TVSIL_STATE);
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>