您的位置:首页 > 其它

MFC基础之字体和文本

2016-03-24 00:00 218 查看
摘要: CFont、DrawText、TextOut

void CTextAndFontView::OnPaint()

{

CPaintDC dc(this); // device context for painting

// TODO: 在此处添加消息处理程序代码

// 不为绘图消息调用 CView::OnPaint()

CRect rect;

GetClientRect(&rect);

//创建字体

CFont font;

font.CreatePointFont(720, TEXT("Arial"));//大小72

dc.SelectObject(&font);

dc.SetBkMode(TRANSPARENT);//设置背景模式为透明

CString string = TEXT("HELL");

rect.OffsetRect(16, 16);//设置偏移

dc.SetTextColor(RGB(192, 192, 192));//设置字体颜色为灰色

dc.DrawText(string, -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

rect.OffsetRect(-16, -16);//设置偏移

dc.SetTextColor(RGB(255, 0, 0));//设置字体颜色为黑色

dc.DrawText(string, -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

dc.TextOut(100, 100, TEXT("HELLO"));

LOGFONT lf;

::ZeroMemory(&lf, sizeof(lf));//清空lf结构的内存

lf.lfHeight = 120;//大小为12

lf.lfWeight = FW_BOLD;

lf.lfItalic = TRUE;

::lstrcpy(lf.lfFaceName, TEXT("Times New Roman"));

CFont font2;

font2.CreatePointFontIndirect(&lf);

dc.SelectObject(&font2);

dc.TextOutW(100, 100, TEXT("HELLO, MFC"));

dc.SetViewportOrg(rect.Width() / 2, rect.Height() / 2);//设置原点为客户区中心

dc.SetBkMode(TRANSPARENT);//设置背景模式透明

dc.SetTextColor(RGB(0, 255, 0));

for (int i = 0; i < 3600; i+= 150)

{

LOGFONT lf1;

::ZeroMemory(&lf1, sizeof(lf1));//清空lf结构的内存

lf1.lfHeight = 160;

lf1.lfWeight = FW_BOLD;//字体粗细

lf1.lfEscapement = i;//倾斜的 度数*10

lf1.lfOrientation = i;//倾斜的 度数*10

::lstrcpy(lf1.lfFaceName, TEXT("Arial"));

CFont font1;

font1.CreatePointFontIndirect(&lf1);

CFont *pOldFont = dc.SelectObject(&font1);//pOldFont为原来的字体

dc.TextOut(0, 0, CString(TEXT(" HI")));

dc.SelectObject(pOldFont);

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: