15,976
社区成员
发帖
与我相关
我的任务
分享
void CMyListBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
COLORREF clrItemText;
LPDRAWITEMSTRUCT lpDIS = lpDrawItemStruct;
switch ( lpDIS->itemAction )
{
case ODA_SELECT:
case ODA_DRAWENTIRE:
// Is the item selected?
if ( lpDIS->itemState & ODS_SELECTED )
{
clrItemText = GetSysColor( COLOR_HIGHLIGHTTEXT );
// Clear the rectangle
FillRect( lpDIS->hDC, &lpDIS->rcItem, (HBRUSH)(COLOR_ACTIVECAPTION+1) );
}
else
{
clrItemText = GetSysColor( COLOR_WINDOWTEXT );
// Clear the rectangle
FillRect( lpDIS->hDC, &lpDIS->rcItem, (HBRUSH)m_EvenItemBkgBrush);
}
}
if (lpDIS->itemID%2==0)
{
FillRect( lpDIS->hDC, &lpDIS->rcItem, (HBRUSH)m_OddItemBkgBrush);
}
else
{
}
CDC dc;
dc.Attach(lpDIS->hDC);
CRect rectFull = lpDIS->rcItem;
CRect rect2 = rectFull;
rect2.right = rectFull.Width() - 1;
UINT nIndex = lpDIS->itemID;
if (nIndex != (UINT) -1)
{
LOGFONT lf;
dc.GetCurrentFont()->GetLogFont(&lf);
CFont font, *pOldFont;
lf.lfCharSet = SHIFTJIS_CHARSET;
lstrcpy(lf.lfFaceName,_T("MS Mincho"));
lf.lfHeight=50; //
lf.lfWidth=0;
font.CreateFontIndirect(&lf);
pOldFont=dc.SelectObject(&font);
CString sss;
GetText(nIndex,sss);
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(0,0,0));
dc.DrawText(sss,CRect(rect2.left+3,rect2.top+3, rect2.right-3,rect2.bottom+3), DT_LEFT | DT_SINGLELINE);
dc.SelectObject(pOldFont);
}
dc.Detach();
}