MFC - CDC - DrawText 设置行高

#include <afxwin.h>
//hdc:要在其中绘图的一个设备场景的句柄
//str:欲描绘的文本字串
//count:欲描绘的字符数量。如果要描绘整个字串(直到空中止符),则可将这个参数设为-1
//rect:指定用于绘图的一个格式化矩形(采用逻辑坐标)
//flags:一个标志位数组,决定了以何种形式执行绘图,如DT_LEFT|DT_WORDBREAK|DT_EXPANDTABS|DT_TABSTOP| DT_EDITCONTROL| DT_NOPREFIX
//dtp:这个结构包含了附加的绘图参数,如tab键的宽度
//lineHeight:行高
void MyDrawText(HDC hdc,LPWSTR str,INT count,LPRECT rect,UINT flags,LPDRAWTEXTPARAMS dtp,float* lineHeight=NULL)
{   int fontHeight; //字体高度  TEXTMETRICW tm; GetTextMetricsW(hdc, &tm);if (flags & DT_EXTERNALLEADING)fontHeight = tm.tmHeight + tm.tmExternalLeading;elsefontHeight = tm.tmHeight;float lh=lineHeight?*lineHeight:fontHeight;   //行高BOOL invert_y = FALSE;if (GetGraphicsMode(hdc) == GM_COMPATIBLE){SIZE window_ext, viewport_ext;GetWindowExtEx(hdc, &window_ext);GetViewportExtEx(hdc, &viewport_ext);if ((window_ext.cy > 0) != (viewport_ext.cy > 0))invert_y = TRUE;}CRect line=rect; //每行的方框line.bottom=line.top+fontHeight;   //首行while(line.bottom<=rect->bottom){DrawTextExW(hdc,str,count,line,flags,dtp);  //每次在行方框中绘制,即每次绘制一行str += dtp->uiLengthDrawn;   //uiLengthDrawn 是已绘制了多少字符count -= dtp->uiLengthDrawn;if(invert_y){          line.top -= lh;line.bottom -= lh;         }else{line.top += lh;     //移动方框line.bottom += lh;          }}
}

MFC - CDC - DrawText 设置行高相关推荐

  1. excel表格行宽列高怎么设置_excel表格怎么设置行高列宽

    excel表格怎么设置行高列宽 你是怎么调整Excel表格的行高和列宽的? 如果还在用原始的手动调整方法,那你赶紧看看下面这几种解决方法,不仅效率高,而且调整的行高和列宽还很统一整齐哦,快和小编来学习 ...

  2. android+listview设置行高,android – 无法在行xml中设置listView行高的高度

    这是我的自定义适配器的getView方法: public View getView(int position, View convertView, ViewGroup viewGroup) { Sin ...

  3. [VBA] 设置行高和列宽,以及全选单元格

    一.用VBA设置行高和列宽 1.将选定区域内各单元格的行高和列宽设置为指定的数值: Sub SetSpecified()With ActiveWindow.RangeSelection.ColumnW ...

  4. html图片怎么设置行高,html行高怎么设置

    html设置行高的方法:首先创建一个HTML示例文件:然后在body中通过p标签创建几行文本内容:最后通过给文本添加"line-height:20px;"样式来设置行高即可. 本文 ...

  5. 给GridView设置行高

    近期在工作中遇到了这样一个问题,使用一个GridView展示数据,item中仅仅是一个TextView,可是里面显示的文字多少不固定多少,必须所有展示出来. 遇到的问题: 1.把item中的宽和高设置 ...

  6. 为什么设置行高文字就能居中

    :点上面关注免费学习前端知识! 在设置CSS样式的时候,我们常常设置行高为元素的高度,这样一来,文字就可以在这个元素里面垂直居中了,那这是为什么呢?今天就来分析原理. 首先,一行文字有顶线.中线.基线 ...

  7. php单元格字体颜色,PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽...

    PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽 2020-08-31 85 一:读取excel表模板$ph ...

  8. 使用REPT功能设置行高

    Thanks to AlexJ for suggesting a great use for the REPT function – setting a minimum row height. He ...

  9. excel设置行高等于列宽_如何在Excel中设置行高和列宽

    excel设置行高等于列宽 By default, when you create a new workbook in Excel, the row height and column width i ...

最新文章

  1. 获取app传入的json值处理
  2. 【大数据学习】数学基础及应用
  3. nginx的读写分离
  4. 关于前后端交互的一些基础知识点
  5. vsftpd安装问题汇总(持续更新。。)
  6. double 乘法_老大说:谁要再用double定义商品金额,就自己收拾东西走 | 文末福利...
  7. 初学者python笔记(内置函数_1)
  8. 2019.1.5 DOM
  9. RN react-navigation使用
  10. HTTP 之 HTTPD介绍
  11. linux进程管理相关概念
  12. sybase 中可以对现有的表结构进行增加
  13. Tomcat—HTTPS之生成密钥库文件与配置Tomcat服务器
  14. (2)css的复合选择器与特性
  15. JAVA基础(1/17)-JAVA语言概述
  16. 全民开发者时代到来!华为云开发者日深圳站成功举办
  17. TemplateBinding和Binding的区别
  18. 计算机科学的中心舞台在于,【名师】上海财经大学教授陆品燕:以赤子之心长者之智,打造国际一流理论计算机科学研究中心...
  19. 如何使用时间机器进行备份?最全的Time Machine时间机器备份教程
  20. Word2013如何在中间某页重新编排页码,增加分节符。

热门文章

  1. 合肥工业大学 数控车 程序
  2. 【考研英语/四六级】英语请求信范文模板
  3. 【Django】自定义存储后端返回完整图片的URL链接
  4. Goby 2.0 | 引擎大升级 · DIY 指纹时代
  5. 自卑与超越—读书笔记
  6. ensp综合性拓扑简单搭建(web网页)
  7. SDUT OJ 懒虫小鑫
  8. 怎样解酒----精心准备防醉酒
  9. 模拟油画和铅笔画的滤镜效果
  10. PMO如何打造企业级项目管理赋能平台︱用友金融项目管理部总经理贺小奔