黄维通VC++学习笔记之文本与字体.doc

黄维通VC++学习笔记之文本与字体.doc

ID:54768855

大小:17.50 KB

页数:3页

时间:2020-04-21

黄维通VC++学习笔记之文本与字体.doc_第1页
黄维通VC++学习笔记之文本与字体.doc_第2页
黄维通VC++学习笔记之文本与字体.doc_第3页
资源描述:

《黄维通VC++学习笔记之文本与字体.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、黄维通VC++学习笔记之文本与字体1.文本操作:先要获得文本句柄、设置字体、字符大小、字符颜色等有关属性、将这些属性选入设备环境2.字体句柄(1)定义字体句柄变量:HFONThF;//hF为字体的句柄(2)调函数GetStockObject获得系统字体句柄它返回的是系统的默认字体hF=GetStockObject():(3)调用函数SelectObject将字体选入设备环境SelectObject(hdc,hF);3.创建自定义字体若需要定义系统以外的字体,可以调用函数GreateFont自行创建HFont=CreateFont(intnHeight

2、,//字体高度,0采用系统默认值,使用逻辑单位intnWidth,//字体宽度,取0则由系统根据高宽比取最佳值intnEscapement,//每行文字相对于页底的角度,单位为0.1度intnOrienation,//每个文字相对于页底的角度,单位为0.1度DWORDnWeight,//字体粗细度,范围为0~1000DWORDDwltalic,//如果要求字体倾斜,则取非零DWORDdwUnderline,//如果要求下划线,则取非零DWORDdwStrikeout,//如果要求中划线,则取非零DWORDdwCharset,//字体所属字符集DWOR

3、DdwOutputPrecision,//输出精度,一般取默认值OUT_DEFAULT_PRECISDWORDdwClipPrecision,//剪裁精度,常取默认值CLIP_DEFAULT_PRECISDWORDdwQuality,//输出质量,一般取默认值DEFAULT_QUALITYDWORDdwPitchAndFamily,//字体名)4.设置字体和背景颜色设置字体颜色:SetTextColor(hdc,crColor);设置背景颜色:SetBkColor(hdc,crColor);5.文本的输出过程获取字体信息、格式化文本(确定后续文本坐标

4、、确定换行时文本坐标)、调用函数输出文本6.输出文本之前要获取字体的信息,如字符高度等,以确定输出格式和下一行字符的位置GetTextMetrics(hdc,&tm);//tm为TEXTMETRICS结构调用该函数时,系统将当前字体的信息拷贝到tm标识的TEXTMETRICS结构中7.系统定义的TEXTMETRICS的结构如下:typedefstructtagTEXTMETRIC{//tmLONGtmHeight;//字符高度LONGtmAscent;//字符基线以上高度LONGtmDescent;//字符基线以下高度LONGtmInternalLe

5、ading;//tmHeight制订的字符高度顶部的控件LONGtmExternalLeading;//行与行之间的间隔LONGtmAveCharWidth;//平均字符宽度LONGtmMaxCharWidth;//最大字符宽度LONGtmWeight;//字符的粗细度LONGtmOverhang;//合成字体间附加的宽度LONGtmDigitizedAspectX;//为输出设备设计的X轴尺寸LONGtmDigitizedAspectY;//为输出设备设计的Y轴尺寸BCHARtmFirstChar;//字体中第一个字符值BCHARtmLastCha

6、r;//字体中最后一个字符值BCHARtmDefaultChar;//代替不在字体中字符的字符BCHARtmBreakChar;//作为分割符的字符BYTEtmItalic;//非0则表示字体为斜体BYTEtmUnderlined;//非0则表示字体有下划线BYTEtmStruckOut;//非0则表示字符为删除字体BYTEtmPitchAndFamily;//字体间距和字体族BYTEtmCharSet;//字符集}TEXTMETRIC7.格式化文本需要格式化处理的情况:在文本行中确定后续文本的坐标、换行时确定下一行文本的坐标确定后续文本的坐标,应先

7、获取当前的字符串的宽度,该工作由GetTextExtentPoint32函数完成,并把它存储于一个SIZE结构中。BooLGetTextExtentPoint32(HDChdc,LPCTSTRlpszString,//指定的字符串intnLength,//字符串中的字符数LPSIZElpSize//返回字符串宽度及高度的SIZE数据结构的地址)确定换行时文本坐标通过计算当前行文本字符的高度与行间隔之和,即可得到换行时文本的起始坐标:字符的高度与行间隔均存储在tm指向的TEXTMETRICS结构中,换行时Y轴上文本的起始坐标cy为:cy=tm.tmHe

8、ight+tm.tmExternalLeading;文本输出:常用的文本输出函数TextOut原型如下:BO

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。