当前位置: 首页 > news >正文

MFC文本输出学习

void CTxttstView::OnDraw(CDC* pDC)
{CTxttstDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;pDC->SetBkColor(RGB(0,0,0));pDC->TextOut(50, 50, "一段文字");pDC->SetBkColor(RGB(255,255,255));pDC->TextOut(150, 50, "一段文字");pDC->SetBkColor(RGB(0,128,0));pDC->TextOut(250, 50, "一段文字");pDC->SetBkColor(RGB(0,160,0));pDC->TextOut(450, 50, "测试一段文字测试AAAAAAA");pDC->SetBkColor(RGB(0,180,0));pDC->TextOut(50, 80, "一段文字2", 4);pDC->SetTextAlign(TA_LEFT);pDC->SetBkColor(RGB(0,180,0));pDC->TextOut(50, 110, "一段文字3");CRect r1(50,150,200,200);pDC->Rectangle(r1);pDC->DrawText("一段文字d", r1, DT_SINGLELINE | DT_CENTER | DT_VCENTER);CRect r2(50,210,200,260);pDC->Rectangle(r2);pDC->DrawText("一段文字d", r2, DT_SINGLELINE | DT_LEFT | DT_VCENTER);CRect r3(50,270,200,320);pDC->Rectangle(r3);pDC->DrawText("一段文字d", r3, DT_SINGLELINE | DT_RIGHT | DT_VCENTER);int iArray[] = {100,200,300,400,500};pDC->TabbedTextOut(10,340,TEXT("测试\t中文\t你好\t汉字\t在这\t里!"),-1,5,iArray,0);pDC->TextOut(10, 360, TEXT("测试\t中文\t你好\t汉字\t在这\t里!"));int iArray2[] = {10,20,30,40,50};pDC->TabbedTextOut(10,380,TEXT("测试\t中文\t你好\t汉字\t在这\t里!"),-1,5,iArray2,0);}

 

获取了CDC类指针之后可以设置一些属性,再输出文字;

SetBkColor(RGB(0,0,0)),这样设置文本输出背景色;对于TextOut来说设置背景的区域和输出文字的区域一样大小;

TextOut一般用前3个参数,x坐标、y坐标、输出的文字,也可以使用第4个参数,输出多少个字符;pDC->TextOut(50, 80, "一段文字2", 4),一个汉字是2个字符,这只输出了“一段”;

SetTextAlign,设置文本对齐方式,对于TextOut没有什么效果;

DrawText在一个矩形内输出文字,第一个参数是要输出的文字,第二个参数是一个矩形,第三个参数是文字对齐等一些属性;图中的矩形是额外画的,为了看到DrawText效果;第二个参数如果是用CRect类定义的,CRect r1(50,150,200,200) 这样,直接传递r1就可;

TabbedTextOut 函数在指定位置写入字符串,将制表符扩展到制表位位置数组中指定的值;

我还不太理解此函数;

pDC->TabbedTextOut(10,340,TEXT("测试\t中文\t你好\t汉字\t在这\t里!"),-1,5,iArray,0);

头2个参数是x和y坐标,第三个参数是要输出的文字,可以包含制表符\t;后一个参数是要输出的文字长度,-1表示全部输出;此函数需要一个整型数组作为参数,再后一个参数是数组中的值数,再后一个参数是数组的指针;

根据文档,数组是制表位位置(以逻辑单元为单位)的数组; 制表位必须按升序排列,最小的 x 值应该是数组中的第一项;

最后一个参数是展开制表符的起始位置的 x 坐标(以逻辑单元为单位);

从效果看制表符对TextOut无效;传2个不同数组的效果如图;

另外还有一个ExtTextOut函数是在TextOut的基础上增加了字符间距、背景颜色和裁剪框进行控制;有时间再看;

 

http://www.lryc.cn/news/185001.html

相关文章:

  • Python 数据分析与挖掘(一)
  • 【问题证明】矩阵方程化为特征值方程求得的特征值为什么是全部特征值?不会丢解吗?
  • 虹科干货 | 不是吧,Redis Enterprise也能当向量数据库来用?
  • 汽车驾驶 - 四梁六柱是什么
  • CI522 13.56MHZ电动车NFC测试资料
  • 【微信小程序开发】一文学会使用CSS样式布局与美化
  • 漏刻有时物联网环境态势感知大数据(设备列表、动态折线图)
  • 【力扣】单调栈:901. 股票价格跨度
  • 4_使用预训练模型 微调训练CIFAR10
  • 机器学习笔记(一)
  • 学习在原地打转的原因与解决 如何步步为营 一日千里快速进步 考研工程计算 1万小时=416.666666667 天
  • 194、SpringBoot --- 下载和安装 Erlang 、 RabbitMQ
  • 机器学习7:pytorch的逻辑回归
  • Java应用程序中如何实现FTP功能 | 代码示例和教程
  • kotlin:list的for循环
  • asp.net电影院选座系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • CSS鼠标指针表
  • 树的基本概念及二叉树
  • BUUCTF Basic 解题记录--BUU XXE COURSE
  • kotlin:LogKit
  • yolo_tracking中osnet不支持.pth格式,而model_zoo中仅有.pth
  • Tailwind CSS浅析与实操
  • Activiti工作流引擎详解与应用
  • New Journal of Physics:不同机器学习力场特征的准确性测试
  • ubuntu22.04 x11窗口环境手势控制
  • 【ARM CoreLink 系列 4 -- NIC-400 控制器详细介绍】
  • 【生成模型】解决生成模型面对长尾类型物体时的问题 RE-IMAGEN: RETRIEVAL-AUGMENTED TEXT-TO-IMAGE GENERATOR
  • 南美巴西市场最全分析开发攻略,收藏一篇就够了
  • c++中操作符->与 . 的使用与区别
  • golang 编译器 汉化