MFC (四) 处理文本

news2024/11/17 13:40:01

默认消息的处理方法

1.确认什么消息

2.添加消息处理函数

3.添加代码

默认消息指在消息定义中已存在的消息

这里我们对文本做换行处理

1.我们在ondraw里修改代码,这样,无论放大,缩小,都不会改变文本

void CMFCpaintView::OnDraw(CDC* pdc){  
  CString sub = _T(" ");
	int y = 0;
	for (int i=0;i<m_strText.GetLength();i++)
	{
		if ((m_strText.GetAt(i)=='\n'))
		{
		
			pdc->TextOut(0, y, sub);
			sub.Empty();
			y += 20;
			continue;
		}
		sub += m_strText.GetAt(i);
	}
	if (sub.IsEmpty() == FALSE)
	{
		pdc->TextOut(0, y, sub);
	}
}

如果遇到换行符,就输出文本,并且换行,并将接下来的文本,储存起来,并通过第二个if,将它打印,这里打印后,发现并没有我们想要的换行,进行调试

首先,打上断点

 依次监视各个局部变量,按F5执行,并键入a、回车

 可以看到,回车在这里的值为\r,我们打开m_strtext的文本可视化,把鼠标移到m_strtext上面,点击放大镜图标,可以看到这里成功换行了

所以说明是我们的if那里出了问题,综上,是换行转成了\r而不是\n

所以将代码修改为

if ((m_strText.GetAt(i)=='\n')|| (m_strText.GetAt(i) == '\r'))

 知识扩展*:由上可得知,textout只能显示单行文本

2.光标随着文本移动

    CPoint pt;
	pt.y = y;
	CSize csize=pdc->GetTextExtent(sub); 
	pt.x = csize.cx;
	SetCaretPos(pt);

gettextExtent确定文本大小,内部包含两个成员变量 cx 和 cy,setcaretpos设置光标位置,里面的两个参数分别是xy,鼠标移到函数上面,看到参数必须是POINT类型,而CPOINT是它的子类,所以可以传递CPOINT对象进去

查看setcaretpos定义

AFXWIN_INLINE void PASCAL CWnd::SetCaretPos(POINT point)
    { ::SetCaretPos(point.x, point.y); }

发现它还有一个重构的版本,所以也可以写成这样,这是一个系统API函数

::SetCaretPos(pt.x, pt.y);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于博客系统的测试

目录 1.测试用例 2.编写代码 2.1InitAndEnd 2.2BlogCases 编写测试用例 2.2.1.登录 2.2.2博客列表页 2.2.3写博客 2.2.4博客详情页校验 2.2.5写博客后,校验博客列表页 2.2.6删除刚才测试发布的博客 2.2.7注销 1.测试用例 2.编写代码 创建两个类 2.1InitAndEnd 用于…

【矩池云】YOLOv3~YOLOv5训练红外小目标数据集

一、数据集准备 数据集下载地址&#xff1a;https://github.com/YimianDai/sirst 1. 需要将数据集转换为YOLO所需要的txt格式 参考链接&#xff1a;https://github.com/pprp/voc2007_for_yolo_torch 1.1 检测图片及其xml文件 import os, shutildef checkPngXml(dir1, dir2…

OceanBase并行执行中 DTL消息接收处理的逻辑

OceanBase 并行执行的消息处理框架是很有意思的&#xff0c;里面用到了不少面向对象编程思想&#xff0c;值得分析。 DTL 从宏观上看可以分为三大部分&#xff1a; DTL 消息发送DTL 消息缓存DTL 消息处理 本文介绍 DTL 消息处理。 核心组件 DTL 消息缓冲区 DTL 消息缓冲区…

不懂这10个命令,别说你会调试网络设备

我的网工朋友大家好啊 好久没跟你们聊思科设备了。 虽然目前大方向上&#xff0c;企业用的设备越来越偏向国产化&#xff0c;学习华为、华三等厂商知识的人也越来越多。 但不可否认的是&#xff0c;思科仍然是厂商老大哥。 交换机、路由器这两块&#xff0c;思科占的全球市场…

若依框架请求magic-api接口出现Uncaught (in promise) error Promise.then (async)

错误描述&#xff1a; 在若依前端向magic-api发请求&#xff0c;实际上收到了返回的数据&#xff0c;但是仍出现错误提示。 错误截图&#xff1a; 猜测的原因&#xff1a; 请求参数错误返回参数错误magic-api内部语法错误 排除原因 在magic-api中仅返回一个数&#xff0c;同…

ChatGPT浪潮席卷,维智科技以时空AI赋能数实融合的未来城市

作者 | 伍杏玲 出品 | CSDN 每个时代都有新的技术浪潮&#xff0c;但在短短两年时间里见证两项颠覆全球的技术发展&#xff0c;实在出人意料之外&#xff1a;2021年以来&#xff0c;元宇宙成为互联网产业新风口&#xff0c;今年ChatGPT成为IT圈“顶流”&#xff0c;这两者为地…

Java访问QingCloud青云QingStor对象存储(公有云、私有云)

一、参考API 官网SDK文档参考&#xff1a;Java SDK - 公有云文档中心 (qingcloud.com) 二、环境说明 公有云跟私有云区别&#xff1a; 使用公有云QingStor&#xff0c;直接按照官网sdk直接可对接&#xff0c;私有云QingStor的话&#xff0c;需要设置具体的私有云请求地址及z…

chatgpt赋能python:Python中构造函数的名称

Python中构造函数的名称 作为一名有10年Python编程经验的工程师&#xff0c;我深知Python语言中构造函数的重要性。在本文中&#xff0c;我将着重介绍Python中构造函数的名称&#xff0c;并阐述其在Python编程中的作用。 什么是构造函数&#xff1f; 构造函数是一种特殊类型…

【C#学习记录】添加控件后工具箱不显示是什么原因

大家好&#xff0c;我是雷工&#xff01; 今天在一个Winform程序中用到将WindowsMediaPlayer控件添加到工具箱&#xff0c;但添加了好几次&#xff0c;工具箱内均无法显示&#xff0c;经翻找资料和验证确认是跟创建项目时选择的模板有关&#xff0c;为了遇到同样问题的小伙伴能…

荣获用友年度十佳产业融合生态伙伴称号 | 图扑软件

2023 年 4 月 20 日&#xff0c;由中华全国工商业联合会联合工业和信息化部、国务院国资委组织开展的 2023 年度“百场万企”大中小企业融通对接活动——智能制造 MES 产业融通对接会暨 2023 用友 BIP 技术大会 MES 生态创新专题论坛在用友产业园顺利召开。 用友年度生态合作伙…

C语言学习分享(第九次)------数据的存储

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C语言学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C语言知识   &#x1f51d;&#x1f51d; 数据的存储 1. 前言&#x1f6a9;2…

符合国情的supabase私有化部署(0)

符合国情的supabase私有化部署(0) 符合国情的supabase私有化部署(0) 前言开源 BaaS 解决方案快速开始 获取部署文件服务明细 容器启动后创建一个前端app注册邮箱SMTP协议jwt token和kong网关配置并应用更改数据库密码k8s 部署参考尾言常见问题 name resolution failedInvalid …

Python:Python编程:从入门到实践__超清版:Python标准库

Python标准库 1. OrderedDict2. threading三级目录 Python标准库是一组模块&#xff0c;按照的Python都包含了它&#xff0c;我们只需要在程序开头包含一条简单的 import 语句&#xff0c;就可以使用标准库中的任何函数和类。 下面我介绍几个重点 标准库 os : 提供一些与操作系…

Word控件Aspose.Words教程:使用 Java 处理 SXC 和 FODS 文件

Aspose.Words是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word。 Aspose API支持流行文件格式处理&#xff0c;并…

NUC980编译错误,multiple target patterns(多个目标匹配)

1&#xff1a;问题&#xff1a; 昨天环境编译的还是没问题的&#xff0c;今天就出错了 &#xff1a; Makefile:133: *** multiple target patterns. Stop 此时&#xff1a;make make clean make disclean 都不可以使用了&#xff0c;报一样的错误。 2&#xff1a;解决办法&…

二叉搜索树的操作、模拟实现、应用以及性能的介绍

一、二叉搜索树 1. 性质 &#xff08;1&#xff09;如果左子树不是空&#xff0c;那么左子树上的所有节点的值都小于根节点的值 &#xff08;2&#xff09;如果右子树不是空&#xff0c;那么右子树上的所有节点的值都大于根节点的值 &#xff08;3&#xff09;左右子树也分别为…

Redis的网络模型

计算机硬件包括CPU&#xff0c;内存&#xff0c;网卡 为了避免用户应用和操作系统内核产生冲突乃至内核崩溃&#xff0c;用户应用和内核是隔离开的 1)进程的寻址空间会被划分成两部分&#xff0c;内核空间和用户空间&#xff0c;内核和用户应用都无法直接访问物理内存&#xff…

【Linux】在Ubuntu上部署web项目(Ubuntu版本为16.04.7,jdk1.8、mysql5.7、tomcat9.0.48)

介绍 这里是小编成长之路的历程&#xff0c;也是小编的学习之路。希望和各位大佬们一起成长&#xff01; 以下为小编最喜欢的两句话&#xff1a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 一个人为什么要努力&a…

河道水位监测:河道水位监测用什么设备

中国地形复杂&#xff0c;气候多样&#xff0c;导致水资源分布不均&#xff0c;洪涝和干旱等问题时有发生。同时&#xff0c;人类活动也对水资源造成了很大压力&#xff0c;工业和农业用水增加&#xff0c;河道水位下降&#xff0c;生态环境受到威胁。因此&#xff0c;对河道水…

【面向对象三大特性之继承】

目录 1.什么是继承2.父类成员访问2.1 子类访问父类的成员变量2.1.1 子类和父类不存在同名成员变量2.1.2 子类和父类存在同名成员变量 2.2子类中访问父类的成员方法2.2.1. 成员方法名字不同2.2.22. 成员方法名字相同 3.super关键字4.子类构造方法5.super和this的异同点6.代码块的…