VC使用指定字体绘制文字
来源:互联网 发布:symbian3软件 编辑:程序博客网 时间:2024/06/05 15:41
李国帅 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_BOLDfont.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;
阅读全文