李国帅 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 pNewFont;