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);
}
}
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);
}
}
相关文章推荐
- sqlserver 获取未提交的事物
- Effective C++: 关于特例化swap防止污染std.
- 《小平工作日志》java抛异常、捕异常的简单介绍
- 《小平工作日志》java异常中嵌套异常的捕获方法
- Head First C学习日志 第七章 创建可变参数的函数
- 没有技术人员,企业如何建站?
- uva 524 prime ring problem——yhx
- 使用UTL_SMTP包实现存储过程邮件发送
- mysql error 1577
- ubuntu无法启动的解决方法
- IDEA热部署设置
- spring+hibernate+maven项目结构搭建
- Spring3.0中AOP生成代理对象问题
- Canvas 基础详解
- LRU缓存算法-基于LinkedHashMap实现
- mklink命令
- 怎样使用MindMapper中的聚焦功能
- C语言 数据结构与算法 单向链表
- CentOS 6.5 install redis 3.0.7
- 厦门巨游网络科技有限公司(HOTPOWER)承接游戏UI外包