Добавлена папка source в CristalDiskMark
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
/*---------------------------------------------------------------------------*/
|
||||
// Author : hiyohiyo
|
||||
// Mail : hiyohiyo@crystalmark.info
|
||||
// Web : https://crystalmark.info/
|
||||
// License : MIT License
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "FontComboBoxFx.h"
|
||||
|
||||
////------------------------------------------------
|
||||
// CFontComboBox
|
||||
////------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC(CFontComboBox, CComboBoxFx)
|
||||
|
||||
CFontComboBox::CFontComboBox()
|
||||
{
|
||||
m_Brush = NULL;
|
||||
}
|
||||
|
||||
CFontComboBox::~CFontComboBox()
|
||||
{
|
||||
m_BkBrush.DeleteObject();
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CFontComboBox, CComboBoxFx)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
void CFontComboBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
|
||||
{
|
||||
if (lpDrawItemStruct->itemID == -1) { return; }
|
||||
|
||||
static COLORREF textColor;
|
||||
static COLORREF textColorSelected;
|
||||
static COLORREF bkColor;
|
||||
static COLORREF bkColorSelected;
|
||||
|
||||
if (m_bHighContrast)
|
||||
{
|
||||
textColor = GetTextColor(lpDrawItemStruct->hDC);
|
||||
textColorSelected = RGB(0, 0, 0);
|
||||
bkColor = GetBkColor(lpDrawItemStruct->hDC);
|
||||
bkColorSelected = RGB(0, 255, 255);
|
||||
|
||||
if (bkColor <= RGB(0x80, 0x80, 0x80)) { textColor = RGB(255, 255, 255); }
|
||||
else { textColor = RGB(0, 0, 0); }
|
||||
}
|
||||
else if (m_bDarkMode)
|
||||
{
|
||||
textColor = RGB(255, 255, 255);
|
||||
textColorSelected = RGB(255, 255, 255);
|
||||
bkColor = RGB(32, 32, 32);
|
||||
bkColorSelected = RGB(77, 77, 77);
|
||||
}
|
||||
else
|
||||
{
|
||||
textColor = m_TextColor;
|
||||
textColorSelected = m_TextColorSelected;
|
||||
bkColor = m_BkColor;
|
||||
bkColorSelected = m_BkColorSelected;
|
||||
}
|
||||
|
||||
CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
|
||||
LoadCtrlBk(pDC);
|
||||
CString title;
|
||||
GetLBText(lpDrawItemStruct->itemID, title);
|
||||
|
||||
CFont font;
|
||||
LOGFONT logfont;
|
||||
memset(&logfont, 0, sizeof(logfont));
|
||||
logfont.lfHeight = m_FontHeight;
|
||||
logfont.lfWidth = 0;
|
||||
logfont.lfWeight = FW_NORMAL;
|
||||
logfont.lfQuality = m_FontRender;
|
||||
logfont.lfCharSet = DEFAULT_CHARSET;
|
||||
|
||||
#if _MSC_VER <= 1310
|
||||
_tcscpy(logfont.lfFaceName, (LPCTSTR)title);
|
||||
#else
|
||||
_tcscpy_s(logfont.lfFaceName, 32, (LPCTSTR)title);
|
||||
#endif
|
||||
font.CreateFontIndirect(&logfont);
|
||||
HGDIOBJ oldFont = pDC->SelectObject(&font);
|
||||
|
||||
CBrush Brush;
|
||||
CBrush* pOldBrush;
|
||||
if (lpDrawItemStruct->rcItem.left != 0 && !m_bHighContrast)
|
||||
{
|
||||
DrawControl(title, pDC, lpDrawItemStruct, m_CtrlBitmap, m_BkBitmap, ControlImageNormal);
|
||||
Brush.CreateSolidBrush(bkColorSelected);
|
||||
pOldBrush = pDC->SelectObject(&Brush);
|
||||
if (lpDrawItemStruct->itemState & ODS_SELECTED)
|
||||
{
|
||||
RECT rc = lpDrawItemStruct->rcItem;
|
||||
// rc.top = (LONG)(rc.bottom - 2 * m_ZoomRatio);
|
||||
rc.right = (LONG)(rc.left + 3 * m_ZoomRatio);
|
||||
FillRect(lpDrawItemStruct->hDC, &rc, (HBRUSH)Brush);
|
||||
}
|
||||
DrawString(title, pDC, lpDrawItemStruct, textColor);
|
||||
|
||||
#if _MSC_VER <= 1310
|
||||
if (IsNT3() && IsWindowEnabled())
|
||||
{
|
||||
DWORD oldTextAlign = m_TextAlign;
|
||||
HGDIOBJ myoldFont = pDC->SelectStockObject(SYSTEM_FONT);
|
||||
m_TextAlign = ES_RIGHT;
|
||||
DrawString(_T("v"), pDC, lpDrawItemStruct, textColor);
|
||||
m_TextAlign = oldTextAlign;
|
||||
pDC->SelectObject(myoldFont);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lpDrawItemStruct->itemState & ODS_SELECTED)
|
||||
{
|
||||
Brush.CreateSolidBrush(bkColorSelected);
|
||||
pOldBrush = pDC->SelectObject(&Brush);
|
||||
FillRect(lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem, (HBRUSH)Brush);
|
||||
DrawString(title, pDC, lpDrawItemStruct, textColorSelected);
|
||||
}
|
||||
else
|
||||
{
|
||||
Brush.CreateSolidBrush(bkColor);
|
||||
pOldBrush = pDC->SelectObject(&Brush);
|
||||
FillRect(lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem, (HBRUSH)Brush);
|
||||
DrawString(title, pDC, lpDrawItemStruct, textColor);
|
||||
}
|
||||
}
|
||||
pDC->SelectObject(pOldBrush);
|
||||
Brush.DeleteObject();
|
||||
pDC->SelectObject(oldFont);
|
||||
}
|
||||
Reference in New Issue
Block a user