// TODO: Add your command handler code here //先创建字体 LOGFONT logFont; memset(&logFont, 0, sizeof(logFont)); logFont.lfHeight = 2400; logFont.lfCharSet = GB2312_CHARSET; wcsncpy_s(logFont.lfFaceName,2,_T("隶书"),2); CFont font; font.CreateFontIndirect(&logFont);//获取DC CClientDC dc(this);CFont* pOldFont = dc.SelectObject(&font); CString str = _T("我"); dc.BeginPath(); dc.TextOut(0,0,str); dc.EndPath(); //获取字体的大小 size = dc.GetTextExtent(str); CRect rect(CPoint(0,0),size); dc.SelectObject(pOldFont); font.DeleteObject(); CRgn rgn; CRgn rgnRect; CRgn rgnResult; rgnRect.CreateRectRgn(0,0,size.cx,size.cy); rgnResult.CreateRectRgn(0,0,0,0); rgn.CreateFromPath(&dc); rgnResult.CombineRgn( &rgnRect, &rgn, RGN_DIFF ); CBrush* pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(GRAY_BRUSH)); CBrush* pBrush2 = CBrush::FromHandle((HBRUSH)GetStockObject(BLACK_BRUSH)); CRgn rgnRectLeft; rgnRectLeft.CreateRectRgn(0,0, size.cx/2, size.cy); CRgn rgnRectRight; rgnRectRight.CreateRectRgn(size.cx/2,0, size.cx,size.cy); CRgn rgnResult2; CRgn rgnResult3; rgnResult2.CreateRectRgn(0,0,0,0); rgnResult3.CreateRectRgn(0,0,0,0); rgnResult2.CombineRgn(&rgnRectLeft,&rgnResult,RGN_AND); rgnResult3.CombineRgn(&rgnRectRight,&rgnResult,RGN_AND); //填充字体 dc.FillRgn(&rgnResult2,pBrush); dc.FillRgn(&rgnResult3,pBrush2);