当前位置: 首页 > 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的基础上增加了字符间距、背景颜色和裁剪框进行控制;有时间再看;

 

相关文章:

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))…...

Python 数据分析与挖掘(一)

Python 数据分析与挖掘(数据探索) 数据探索 1.1 需要掌握的工具(库) 1.1.1 Nump库 Numpy 提供多维数组对象和各种派生对象(类矩阵),利用应用程序接口可以实现大量且繁琐的数据运算。可以构建…...

【问题证明】矩阵方程化为特征值方程求得的特征值为什么是全部特征值?不会丢解吗?

问题 这个问题困扰了我好久,一直感觉如果有其他的特征值没法证伪,不过一直存在思想的层面,没有实际解决,今天突然想到动笔来解决,遂得解,证明如下。 证明 总结 这个证明看似证明过后很直观,但…...

虹科干货 | 不是吧,Redis Enterprise也能当向量数据库来用?

什么是向量相似性搜索啊? 例如,你需要搜索一棵发财树的图片,如果用传统数据库来检索,你大概率会在茫茫树丛中错失心仪的发财树。但是,向量相似性搜索能用向量来表示所有树的特征,这样就能够通过计算向量之间…...

汽车驾驶 - 四梁六柱是什么

汽车的四梁六柱指的是车辆的两个前纵梁,两个后纵梁和ABC柱。虽然不像车辆上的发动机变速箱这些部件出镜率那么高,但这几个部位的重要作用可一点都不含糊。一辆车在碰撞时能够受力起到保护左右的就是四梁六柱,对我们汽车的安全性起到至关重要的…...

CI522 13.56MHZ电动车NFC测试资料

Ci522是一颗工作在13.56MHz频率下的非接触式读写芯片,支持读A卡(CI523支持读A/B卡),可做智能门锁、电动车NFC一键启动、玩具NFC开锁等应用。为部分要求低成本,PCB小体积的产品提供了可靠的选择。 Ci522与Si522/MFRC52…...

【微信小程序开发】一文学会使用CSS样式布局与美化

引言 在微信小程序开发中,CSS样式布局和美化是非常重要的一部分,它能够为小程序增添美感,提升用户体验。本文将介绍如何学习使用CSS进行样式布局和美化,同时给出代码示例,帮助开发者更好地掌握这一技巧。 一、CSS样式布…...

漏刻有时物联网环境态势感知大数据(设备列表、动态折线图)

物联网环境下的态势感知是指对物联网环境中的各种要素进行全面、实时、准确的监测、分析和预测,以实现网络态势的全面掌握和安全威胁的及时响应和处理。具体而言,态势感知以物联网环境为基础,利用各类传感器、数据采集设备和其他相关工具,对物联网设备、资产、数据流等进行…...

【力扣】单调栈:901. 股票价格跨度

【力扣】单调栈:901. 股票价格跨度 文章目录 【力扣】单调栈:901. 股票价格跨度1. 题目介绍2. 思路3. 解题代码参考 1. 题目介绍 设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。 当日股票价格的 跨度 被定义为股票价格…...

4_使用预训练模型 微调训练CIFAR10

使用预训练模型 微调训练CIFAR10 1. VGG 准备工作import torch from torch import nn import torchvision from torchvision import models from torchvision import datasets, transforms from datetime import datetime from tqdm import tqdm from torchsummary import sum…...

机器学习笔记(一)

1.线性回归模型 2. 损失函数 3.梯度下降算法 多元特征的线性回归 当有多个影响因素的时候,公式可以改写为: 当有多个影响因素的时候为了方便计算,可以使用 Numpy下面的点积方法, np.dot(w,x) 最后再加个b 就省略了很多书写步骤,这叫做矢量化 多元回归的梯度下降 左边是一…...

学习在原地打转的原因与解决 如何步步为营 一日千里快速进步 考研工程计算 1万小时=416.666666667 天

学习在原地打转的原因可能有很多。以下是一些常见的原因: 缺乏明确的目标:如果没有明确的学习目标,人们往往会感到迷失和困惑。没有一个明确的方向,就很难做出有针对性的努力,从而导致学习进展缓慢。 学习方法不当&a…...

194、SpringBoot --- 下载和安装 Erlang 、 RabbitMQ

本节要点: 一些命令: 小黑窗输入: rabbitmq-plugins enable rabbitmq_management 启动控制台插件 rabbitmq-server 启动rabbitMQ服务器 管理员启动小黑窗: rabbitmq-service install 添加rabbitMQ为本地服务 启动浏览器访问 htt…...

机器学习7:pytorch的逻辑回归

一、说明 逻辑回归模型是处理分类问题的最常见机器学习模型之一。二项式逻辑回归只是逻辑回归模型的一种类型。它指的是两个变量的分类,其中概率用于确定二元结果,因此“二项式”中的“bi”。结果为真或假 — 0 或 1。 二项式逻辑回归的一个例子是预测人…...

Java应用程序中如何实现FTP功能 | 代码示例和教程

原为地址:https://www.toymoban.com/diary/java/363.html 在Java应用程序中实现FTP功能需要使用FTPClient类和相关方法。下面是实现三个主要功能的示例代码: 1)显示FTP服务器上的文件: void ftpList_actionPerformed(ActionEv…...

kotlin:list的for循环

代码: var list { "a", "b", "c" } for (i in list.indices) {print("app"i""list[i]) }...

asp.net电影院选座系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net电影院选座系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net电影院选座系统1 二、功能介…...

CSS鼠标指针表

(机翻)搬运自:cursor - CSS: Cascading Style Sheets | MDN (mozilla.org) 类型Keyword演示注释全局autoUA将基于当前上下文来确定要显示的光标。例如,相当于悬停文本时的文本。default 依赖于平台的默认光标。通常是箭头。none不会渲染光标。链接&状态contex…...

树的基本概念及二叉树

目录 一、树的基本概念 (1)树的结点 (2)度 (3)结点层次 (4)树的高度 树的特点: 二、二叉树 (1)满二叉树 (2)完…...

BUUCTF Basic 解题记录--BUU XXE COURSE

1、XXE漏洞 初步学习,可参考链接: 一篇文章带你深入理解漏洞之 XXE 漏洞 - 先知社区 2、了解了XXE漏洞,用burpsuite获取到的url转发给repeater,修改XML的信息,引入外部实体漏洞,修改发送内容,…...

3大突破!115proxy-for-Kodi实现云视频原码播放全攻略

3大突破!115proxy-for-Kodi实现云视频原码播放全攻略 【免费下载链接】115proxy-for-kodi 115原码播放服务Kodi插件 项目地址: https://gitcode.com/gh_mirrors/11/115proxy-for-kodi 副标题:突破存储限制,零缓冲流畅播放云端高清视频…...

Java Faker故障排除终极指南:10个常见问题与解决方案完整清单

Java Faker故障排除终极指南:10个常见问题与解决方案完整清单 【免费下载链接】java-faker Brings the popular ruby faker gem to Java 项目地址: https://gitcode.com/gh_mirrors/ja/java-faker Java Faker是Java开发者生成测试数据的终极工具,…...

全志T3核心板DDR初始化失败:从ZQ校准误导到VREF电压偏差的排查实录

1. 问题现象与初步排查 那天早上刚到实验室,测试组的同事就急匆匆跑过来:"哥,又有三台设备启动不了,uboot都没跑起来!"我接过设备一看,果然又是熟悉的ZQ校准错误提示,这已经是本周第五…...

ChatGLM-6B角色扮演功能开发:基于Prompt的智能对话系统

ChatGLM-6B角色扮演功能开发:基于Prompt的智能对话系统 1. 引言 想象一下,你正在开发一个智能客服系统,需要让AI能够扮演不同角色的专业人士来回答用户问题。或者你正在创建一个教育应用,希望AI能够化身历史人物、科学导师或文学…...

超表面全息显示入门避坑指南:为什么你的G-S算法迭代不收敛?

超表面全息显示实战:G-S算法迭代不收敛的7个关键修复策略 当你第一次在MATLAB里跑通G-S算法时,那种成就感就像解开了宇宙的密码——直到重建图像出现雪花般的噪点,或者迭代2000次后相关系数仍在0.5徘徊。这不是你的错,大多数教程都…...

写作压力小了!2026最新AI论文写作工具测评与推荐

2026年真正好用的AI论文写作工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...

DIYables WebApps:面向Arduino的嵌入式WebSocket Web应用框架

1. 项目概述DIYables WebApps 是一个面向教育与快速原型开发的嵌入式 Web 应用框架,专为 Arduino Uno R4 WiFi 与 DIYables STEM V4 IoT 平台深度优化。它并非传统意义上的“Web 服务器库”,而是一套硬件感知、内存敏感、即插即用的 WebSocket Web 应用容…...

【具身智能07】具身智能世界模型与端到端架构:从看见到理解物理规律

07_具身智能世界模型与端到端架构 关键词 世界模型,端到端架构,VLA模型,DreamerV3,RoboCat,WALL-A,云边端协同,系统012架构,多时间尺度预测,因果推理一、引言:从反应式感知到预测式认知的范式转变 2024年之前,具身智能的主流是"感知-行动"反应式回路——机器人看到杯…...

从WHL文件到集成开发:Windows系统下PySide2的完整部署指南

1. 为什么选择PySide2开发Windows GUI应用 用Python开发图形界面程序有很多选择,但PySide2绝对是Windows平台下最值得推荐的工具之一。作为Qt官方绑定的Python库,PySide2不仅功能强大,还能免费商用。我最早接触PySide2是在一个工业控制项目里…...

微机原理实验一代码逐行精讲:从‘Hello World’到ASCII转换的底层逻辑

微机原理实验一代码逐行精讲:从‘Hello World’到ASCII转换的底层逻辑 当屏幕上跳出"Hello World!"时,很少有人思考这行文字背后究竟发生了什么。这段经典的汇编代码就像一扇门,推开它你将看到CPU如何与内存对话、中断服务程序如何…...