SetTextColor(hMemDC,RGB(255,0,255));//设立字体颜色为什么不行

SetTextColor(hMemDC,RGB(255,0,255));//设置字体颜色为什么不行?

rcTitle.right -= 8;
TCHAR tzTitle[64] = { 0 };//最多只显示前64个字符
GetWindowText( hWnd,tzTitle,sizeof(tzTitle) );
int nOldBkMode = SetBkMode( hMemDC,TRANSPARENT );
HFONT hFont = (HFONT)::SendMessage( hWnd, WM_GETFONT, 0, 0 );
HFONT hFontTitle;
LOGFONT lf;
if( hFont != NULL )
{
::GetObject( hFont, sizeof(LOGFONT),&lf );
//lf.lfWeight = FW_BOLD;
}
else
{
SystemParametersInfo( SPI_GETICONTITLELOGFONT,sizeof(LOGFONT),&lf,0 );
//lf.lfWeight = FW_BOLD;
}

hFontTitle = CreateFontIndirect( &lf );
HFONT hOldFont = (HFONT)SelectObject( hMemDC,hFontTitle );
DrawText( hMemDC,tzTitle,_tcsclen( tzTitle ),&rcTitle,DT_LEFT | DT_SINGLELINE | DT_VCENTER );
SelectObject( hMemDC,hOldFont );
DeleteObject( hFontTitle );
SetBkMode( hMemDC,nOldBkMode );
        SetTextColor(hMemDC,RGB(255,0,255));//设置字体颜色为什么不行?
BitBlt( hDC,0,0,nWidth,nHeight,hMemDC,0,0,SRCCOPY );
SelectObject( hMemDC,hOldBitmap );

------解决方案--------------------
将  SetTextColor(hMemDC,RGB(255,0,255));放置到DrawText调用之前,否则不起作用啊。所有DC的设置,都应该在实际的绘制函数之前设定,否则没有用的
------解决方案--------------------
楼上说的非常对:



rcTitle.right -= 8;
TCHAR tzTitle[64] = { 0 };//最多只显示前64个字符
GetWindowText( hWnd,tzTitle,sizeof(tzTitle) );
int nOldBkMode = SetBkMode( hMemDC,TRANSPARENT );
HFONT hFont = (HFONT)::SendMessage( hWnd, WM_GETFONT, 0, 0 );
HFONT hFontTitle;
LOGFONT lf;
if( hFont != NULL )
{
::GetObject( hFont, sizeof(LOGFONT),&lf );
//lf.lfWeight = FW_BOLD;
}
else
{
SystemParametersInfo( SPI_GETICONTITLELOGFONT,sizeof(LOGFONT),&lf,0 );
//lf.lfWeight = FW_BOLD;
}

hFontTitle = CreateFontIndirect( &lf );
HFONT hOldFont = (HFONT)SelectObject( hMemDC,hFontTitle );
SetTextColor(hMemDC,RGB(255,0,255));//设置字体颜色为什么不行?  要放在这里才行。
DrawText( hMemDC,tzTitle,_tcsclen( tzTitle ),&rcTitle,DT_LEFT 
------解决方案--------------------
 DT_SINGLELINE 
------解决方案--------------------
 DT_VCENTER );
SelectObject( hMemDC,hOldFont );
DeleteObject( hFontTitle );
SetBkMode( hMemDC,nOldBkMode );
        
BitBlt( hDC,0,0,nWidth,nHeight,hMemDC,0,0,SRCCOPY );
SelectObject( hMemDC,hOldBitmap );