ctreectrl自绘的有关问题

ctreectrl自绘的问题
我按照网上的例子重写了OnPaint方法,测试后发现这段代码只改变了字体,没有改变颜色,但是把
memdc.TextOut( rect.left+2, rect.top+1, sItem );
memdc.SelectObject( pfontdc );
这两句代码(66行和67行)调换一下位置,就可以实现改变字体和颜色。我想问下这是为什么?
void CMyTreeCtrl::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CTreeCtrl::OnPaint()
CDC memdc;
memdc.CreateCompatibleDC(&dc);

CRect rcclip,rcclient;
dc.GetClipBox(&rcclip);
GetClientRect(&rcclient);

CBitmap bitMap;
bitMap.CreateCompatibleBitmap(&dc,rcclient.Width(),rcclient.Height());
CBitmap *pOldBitmap = memdc.SelectObject(&bitMap);

CRgn rgn;
rgn.CreateRectRgnIndirect(&rcclip);

memdc.SelectClipRgn(&rgn);

rgn.DeleteObject();

CWnd::DefWindowProc(WM_PAINT,(WPARAM)memdc.m_hDC,0);

HTREEITEM hItem = GetFirstVisibleItem();

int n = GetVisibleCount()+1;
while (hItem && n - 1)
{
CRect rect;
UINT setflag = TVIS_DROPHILITED|TVIS_SELECTED;
Color_Font cf;
if ( !(GetItemState( hItem, setflag ) & setflag ) 
&& m_mapColorFont.Lookup( hItem, cf ))
{
CFont *pfontdc;
CFont fontdc;
LOGFONT logfont;

if( cf.logfont.lfFaceName[0] != '\0' ) 
{
logfont = cf.logfont;
}
else
{
// no font specified, so use window font
CFont *pfont = GetFont();
pfont->GetLogFont( &logfont );
}

if( GetItemBold( hItem ) )
logfont.lfWeight = 700;
fontdc.CreateFontIndirect( &logfont );
pfontdc = memdc.SelectObject( &fontdc );

if( cf.color != (COLORREF)-1 )
memdc.SetTextColor( cf.color );

CString sItem = GetItemText( hItem );

GetItemRect( hItem, &rect, true );

memdc.SetBkColor( GetSysColor( COLOR_WINDOW ) );

memdc.TextOut( rect.left+2, rect.top+1, sItem );
memdc.SelectObject( pfontdc );

}
hItem = GetNextVisibleItem( hItem );
}
dc.BitBlt( rcclip.left, rcclip.top, rcclip.Width(), rcclip.Height(), &memdc, rcclip.left, rcclip.top, SRCCOPY );
}

------解决思路----------------------
fontdc 是不是有问题?
------解决思路----------------------
            memdc.SelectObject( pfontdc );
这句在
memdc.TextOut( rect.left+2, rect.top+1, sItem );
前时,字体已经是 原 字体了。

也就是
fontdc 
没起作用



------解决思路----------------------
先载入HFONT,然后再绘制文字。