MFC 文本编程1 --(未实现退格键,相同文字位置会发生覆盖)
来源:互联网 发布:python 颜色渐变 编辑:程序博客网 时间:2024/05/29 07:05
主要消息:键盘按下消息 onchar
鼠标左键按下消息 onlbuttondown
因为鼠标、键盘的操作是由视图类view 捕获的 所以,操作要在view类上建立
因为是要对屏幕输出设备进行操作,所以要用到CClientDc类 来操作设备(屏幕输出)
添加的成员变量 CPoint 类 m_point 用来保存上一次坐标位置
首先是插入符的建立 createsolidcaret() 里面可以传递两个int型参数 可以用来设置插入符的高度和宽度
我们可以根据文本的大小来设置插入符的宽高
获取文本的大小需要用到一个结构体 TEXTMETRIC
通过函数GetTextMetric() 可以得到当前所用字体的信息 高度、平均宽度等。
最后需要用ShowCaret函数显示插入符出来。
接下来需要对键盘按下字符进行处理。
为view类添加一个onchar消息响应函数
我们先考虑普通文本的输入(去掉回车,退格等)
为view类添加一个字符串变量将键盘按下的字符存放到该字符串中,然后显示该字符串即可。对于后面输入的字符可以通过对字符串”+=“重载,
通过设备描述表对象dc 调用TextOut函数将字符串输出
输出之后需要将插入符移动到当前字符后面
首先需要获取我们输入字符串的长度, 声明一个CSize类的对象sz 调用GetTextExtend获取字符串的长度和宽度存放到sz中 参数即为所要获取的字符串
声明一个坐标类 CPoint类的对象p 设置当前坐标 当前x坐标=初始坐标+字符宽度 y坐标不变
用SetCaretPos(p) 将插入符移动到指定位置
考虑回车符
回车之后插入符移动到下一行开始
即 x坐标为0 y坐标下移一行(即当前y坐标+字符高度)
所以要对按下的字符进行判断 若为回车符 执行坐标更改 同时注意要将字符串清空
左键按下后插入符的移动
为view类添加一个左键按下响应函数OnLButtonDown
该响应函数中会传递一个坐标参数
调用SetCaretPos(point)设置当前坐标 ok
同时要清空字符串
将该坐标保存到当前坐标的变量中。
0 0
- MFC 文本编程1 --(未实现退格键,相同文字位置会发生覆盖)
- 如何实现MFC窗口的最大化以及控件随最大化发生位置变动原因
- 怎么实现MFC窗口的最大化以及控件随最大化发生位置变动原因
- MFC 文本编程 -- 总结
- MFC 文本编程
- MFC文本编程
- MFC文本编程
- MFC文本编程概述
- 一个会朗读文本的MFC应用程序
- MFC学习日记五:Mfc文本编程
- Android Spanned实现TextView富文本效果(1)--文字
- button 里面的文字换行后位置会浮动
- Andorid实现Toast覆盖上一个文本
- 以vs2010 MFC编程实现文本*.txt到二进制文件的转换
- 双击文字后实现编辑文本功能
- MFC学习笔记之文本编程
- MFC学习笔记之文本编程
- 孙鑫-MFC笔记四--文本编程
- TCP套接字编程
- Go to business school -- from an engineer/entrepreneur
- 第七届河南省ACM大学生程序设计大赛 G.Code The Tree
- SQL 触发器
- 灰度共生矩阵 源码学习
- MFC 文本编程1 --(未实现退格键,相同文字位置会发生覆盖)
- 23种设计模式的创建模式
- AXD调试u-boot
- Java 编写 Web Service——使用axis && axis2 (续)
- FileChannel 专讲
- 黑马程序员_Java开发基础_02_流程控制
- 嵌入式面试试题_3
- 第十周作业
- 使用反射技术在Android平台上实现本进程内Activity切换时的拦截