当前位置: 首页 > 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的信息,引入外部实体漏洞,修改发送内容,…...

Nornir网络自动化监控插件:集成Sentry实现异常告警与上下文追踪

1. 项目概述:一个为Nornir网络自动化框架量身定制的告警与监控插件 如果你和我一样,长期使用Nornir框架来管理成百上千的网络设备,那你一定遇到过这样的场景:一个精心编写的自动化任务在测试环境跑得飞快,一旦放到生产…...

不止Keil5:VSCode+GCC也能玩转GD32单片机?手把手教你搭建轻量级开发环境

超越Keil5:用VSCodeGCC打造高效GD32开发环境 在嵌入式开发领域,Keil MDK长期以来一直是ARM架构单片机开发的主流选择。然而,随着现代开发工具的演进,越来越多的开发者开始寻求更轻量、更灵活且完全免费的替代方案。本文将带你探索…...

如何通过LizzieYzy围棋AI分析工具在30天内实现棋力突破:从入门到实战的完整指南

如何通过LizzieYzy围棋AI分析工具在30天内实现棋力突破:从入门到实战的完整指南 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 在围棋AI技术飞速发展的今天,LizzieYzy作为一…...

Diablo Edit2:终极暗黑破坏神2角色存档编辑器完全指南

Diablo Edit2:终极暗黑破坏神2角色存档编辑器完全指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否厌倦了在暗黑破坏神2中反复刷装备?是否因为技能点分配错误而不…...

AI LED调光控制器智能功率 MOSFET 完整选型方案

2026年随着 AI 技术在智能照明与调光控制中的深度渗透(如自适应色温、场景联动、人因节律照明),调光控制器对功率 MOSFET 提出更高要求:高精度PWM响应、超低导通损耗、高散热密度。微碧半导体(VBsemi)基于S…...

不使用void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle)增强代码的层级结构注意事项

这是正常用cube Max生成的代码,这里以设置编码器为例。 GPIO初始化函数放在HAL_TIM_Encoder_MspInit这个回调函数中。代码正常运行/* TIM3 init function */ void MX_TIM3_Init(void) {TIM_Encoder_InitTypeDef sConfig {0};TIM_MasterConfigTypeDef sMasterConfig…...

LaserGRBL:5分钟掌握开源激光雕刻控制软件的核心功能

LaserGRBL:5分钟掌握开源激光雕刻控制软件的核心功能 【免费下载链接】LaserGRBL Laser optimized GUI for GRBL 项目地址: https://gitcode.com/gh_mirrors/la/LaserGRBL LaserGRBL是一款专为GRBL控制器优化的开源激光雕刻控制软件,为Windows用户…...

全球BGA锡球市场高速成长:2025年2.55亿美元筑基,2032年剑指4.43亿,8.3%CAGR锚定长期高增长逻辑

BGA锡球(BGA Solder Ball) 是用于替代IC元件封装结构中引脚的核心连接件,满足电性互连及机械连接的双重要求。简而言之,它是BGA封装工艺中不可或缺的焊接材料。QYResearch调研显示,2025年全球BGA锡球市场规模大约为2.5…...

告别Arduino IDE:在Visual Studio Code中搭建高效Arduino开发环境

1. 为什么选择VS Code开发Arduino项目 第一次接触Arduino开发时,大多数人都是从官方Arduino IDE开始的。这个简单的开发环境确实能快速上手,但随着项目复杂度增加,它的局限性就越来越明显:代码补全功能弱、项目管理混乱、调试工具…...

ElevenLabs声音库调优秘技:如何用API+Prompt工程将TTS自然度提升67%(附2024最新声纹参数表)

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs声音库资源推荐 ElevenLabs 提供了业界领先的高质量语音合成服务,其声音库(Voice Library)涵盖多语种、多风格的预训练语音模型,适用于播客、有…...