李国帅 2007.5

这段代码主要用在windows对话框和view中绘制指定颜色和字体的文字


CDC* pDC = GetDC();
CFont font;
VERIFY(font.CreateFont(
12, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_NORMAL, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
0, // cStrikeOut
ANSI_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
_T("Arial"))); // lpszFacename
// LOGFONT lf;
// memset(&lf, 0, sizeof(LOGFONT)); // Zero out the structure.
// lf.lfHeight = 12; // Request a 12-pixel-height font.
// lstrcpy(lf.lfFaceName, _T("Arial")); // Request a face name "Arial".
// VERIFY(font.CreateFontIndirect(&lf)); // Create the font.
CFont* pOldFont = (CFont*)pDC->SelectObject(&font);

char szText[50];
//股票名称
memset(szText, 0, sizeof(szText));
strcpy(szText, "hhhhhhhhhhhhhhhhh");
CRect m_DrawRect;
//类型控制栏
m_DrawRect = CRect(10, 10, 100, 100);
pDC->FillSolidRect(m_DrawRect, RGB(127, 0, 0));

pDC->SetBkColor(RGB(1, 1, 1));
pDC->SetTextColor(RGB(1, 1, 127));;
pDC->DrawText(szText, &m_DrawRect, DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_NOCLIP);
pDC->ExtTextOut(5, 5, ETO_OPAQUE, NULL, _T("Hello"), NULL);

pDC->SelectObject(pOldFont);
font.DeleteObject();

CFont *pNewFont = new CFont;
char cFontName[] = "宋体";//_T("GB321")
int nFontSize = 16;
int nFontStyle = 0;
LOGFONT font;
memset(&font, 0, sizeof(font));
font.lfHeight = -nFontSize;
font.lfWeight = FW_NORMAL;//FW_BOLD
font.lfCharSet = DEFAULT_CHARSET;
font.lfOutPrecision = OUT_CHARACTER_PRECIS;
font.lfItalic = TRUE;
font.lfUnderline = TRUE;
strcpy(font.lfFaceName, cFontName);
if (!pNewFont->CreateFontIndirect(&font))
{
delete pNewFont;
pNewFont = NULL;
}
// if(!pNewFont->CreatePointFont( 120 , cFontName ) )
// {
// delete pNewFont;
// pNewFont = NULL;
// }
CDC* pDC = GetDC();
CFont* pOldFont = (CFont*)pDC->SelectObject(pNewFont);
...
pDC->SelectObject(pOldFont);
pNewFont->DeleteObject();
delete