vc学习(三)字体设置及映射模式
来源:互联网 发布:达内java培训费用 编辑:程序博客网 时间:2024/06/06 00:32
http://topic.csdn.net/t/20030509/10/1759362.html
关于这几个函数的解释在本文开头部分的链接,SetMapMode是设置映射模式, MM_ANISOTROPIC:逻辑单位转换成具有任意比例轴的任意单位,用SetWindowExtEx和SetViewportExtEx函数可指定单位、方向和比例。
编辑OnDraw
运行,ok。
http://topic.csdn.net/t/20050226/11/3808037.html
- 让我受益匪浅。
首先按默认新建一个MFC单文档程序,然后开始设置映射模式,由于WM_Paint消息在调用OnDraw函数前会先调用OnPrepareDc函数,于是我们重载一下这个函数来设置映射模式。在CXXView类上右键类向导,在虚函数中选择OnPrepareDC函数,添加函数,然后开始编辑代码
void CtestView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo){CRect clientRect;GetClientRect(clientRect);pDC->SetMapMode(MM_ANISOTROPIC);pDC->SetWindowExt(400,450);pDC->SetViewportExt(clientRect.right,clientRect.bottom);pDC->SetViewportOrg(0,0);}
关于这几个函数的解释在本文开头部分的链接,SetMapMode是设置映射模式, MM_ANISOTROPIC:逻辑单位转换成具有任意比例轴的任意单位,用SetWindowExtEx和SetViewportExtEx函数可指定单位、方向和比例。
CRect clientRect;
GetClientRect(clientRect);//取窗口物理尺寸(单位:像素)
pDC-> SetMapMode(MM_ANISOTROPIC);
pDC-> SetWindowExt(400,450);//窗口逻辑大小:400*450,
pDC-> SetViewportExt(clientRect.right, clientRect.bottom);//设置视图大小(设备单位)
pDC-> SetViewportOrg(0,0);//设置窗口左上角为坐标系原点
GetClientRect(clientRect);//取窗口物理尺寸(单位:像素)
pDC-> SetMapMode(MM_ANISOTROPIC);
pDC-> SetWindowExt(400,450);//窗口逻辑大小:400*450,
pDC-> SetViewportExt(clientRect.right, clientRect.bottom);//设置视图大小(设备单位)
pDC-> SetViewportOrg(0,0);//设置窗口左上角为坐标系原点
添加函数TraceMetrics(CDC *pDC)
void CtestView::TraceMetrics(CDC *pDC){TEXTMETRIC tm;TCHAR szFaceName[100];pDC->GetTextMetrics(&tm);pDC->GetTextFace(99, szFaceName);TRACE("font = %s, tmHeight = %d, tmInternalLeading = %d,"" tmExternalLeading = %d\n", szFaceName, tm.tmHeight,tm.tmInternalLeading, tm.tmExternalLeading);}GetTextMetrics函数取得被选进指定设备环境的字体字样名,GetTextMetrics函数获取当前字体信息。
编辑OnDraw
void CtestView::OnDraw(CDC* pDC){CFont fontTest1,fontTest2,fontTest3,fontTest4;fontTest1.CreateFont(50,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,_T("Arial"));CFont *pOldFont = pDC->SelectObject(&fontTest1);TraceMetrics(pDC);pDC->TextOut(0,0,_T("this is Arial,default width"));fontTest2.CreateFont(50,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,_T("Courier"));pDC->SelectObject(&fontTest2);TraceMetrics(pDC);pDC->TextOut(0,100,_T("this is Courier,default width"));fontTest3.CreateFont(50,10,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,NULL);pDC->SelectObject(&fontTest3);TraceMetrics(pDC);pDC->TextOut(0,200,_T("this is generic Roman,variable width"));fontTest4.CreateFont(50,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,_T("LinePrinter"));pDC->SelectObject(&fontTest4);TraceMetrics(pDC);pDC->TextOut(0,300,_T("this is LinePrinter,default width"));pDC->SelectObject(pOldFont);}
运行,ok。
- vc学习(三)字体设置及映射模式
- vc设置应用程序字体
- vc++_LogFont设置字体
- VC++中的字体设置
- VC 6.0字体设置
- vc 设置控件字体
- VC++中的字体设置
- VC设置字体
- VC控制台输出时设置字体及背景颜色
- vc CreateWindow创建窗口控件及设置字体
- vc CreateWindow创建窗口控件及设置字体
- 设置映射与映射模式
- VC设置控件字体颜色
- VC设置控件字体颜色
- VC++中LogFont设置字体
- VC++按钮控件字体设置
- 字体设置及效果
- VC中的Window映射模式
- Java分布式应用学习笔记02再谈JVM
- java异常的问题
- ANDROID轻量级JSON序列化和反序列化
- Asp.net下载服务器文件
- 2012个人职业规划
- vc学习(三)字体设置及映射模式
- POJ 2410:Simple Computers 模拟题
- Foxmail收邮件时,怎么让"发件人"显示地址簿的名字?
- 【ACM-POJ】poj2386,Lake Counting
- 调试方法-Unity3D对各个target平台的模拟
- Hive装载数据命令
- iPhone开发学习笔记004——自定义背景透明非全屏弹出窗口,子类化UIWindow
- C# 检查字符串,防SQL注入攻击
- 范例必读 (三)[table 中 img 自适应 div 大小缩放]