6-文本的换行处理
文本的换行处理
1.默认消息的处理方法
MFC中,绝大部分消息都已经被系统默认覆盖到了,如果需要,只需去实现并做好响应即可,具体步骤如下:
-
1 确认响应什么消息
-
2 添加消息响应函数
-
3 追加消息响应内容
2.消息创建顺序
在窗口创建时,WM_CREATE消息被响应,对应函数为OnCreate函数。
当窗口配置好了,调用DoModal或者ShowWindow时,会响应WM_PAINT的绘制消息,这个消息将发消息给该窗口的所有控件,让每一个控件各自绘制自己的区域。在绘制前只有主框架,里面每一个控件都是空白的。
3.换行操作实现
由于TextOut只能实现单行文本,因此每次换行都要下移输出的位置,以此达到换行的效果。
思路:读取到的字符串成员变量,在输出时,遍历每一个字符成员。将两个换行间的字符存储到临时字符串中,遇到换行则输出该字符串,并移动打印位置和完成临时字符串的清空。
注意:换行在此处只是一个\r,原因未知。
//OnDraw |
4.光标跟踪
使用SetCaretPos函数来改变光标位置
由于字符串显示时,每个字符的宽度不一致,因此直接使用GetTextExtent函数获取对应字符在显示时占的宽度,再将参数传给光标位置的函数
注意:CPoint是point的子类对象
//OnDraw |
发布于