实现以下功能:
在单文档界面的View视图下输入字符,也就是当键盘键入某个字符后,把该字符输出到程序窗口
首先需要实现以下步骤:
1.光标的位置应该随鼠标点击位置而移动
2.输入的字符应该就是光标所在的位置
我们先实现第一个方法
我们使用CWnd的静态函数SetCaretPpos()函数,这个函数会改变当前光标的位置到point位置,在鼠标点击的消息的函数下输入:
在此之前我们已经建立好了光标并且显示
效果如下:
黑色的竖线就是我们设置的光标,当我们鼠标点击View视图内的任意位置后,SetCaretPos()函数就会将当前的光标设置到参数point参数(也就是鼠标点击位置)点。
首先我们建立一个私有的成员变量CString用来保存我们的输入
当我们更换光标点输入的时候,我们应该清空该变量的值
还需要保存鼠标点击的位置,以确保我们在输入的信息总数在光标的前面。
这些信息都是在鼠标按下时进行操作
下面实现WM_CHAR消息的实现函数
具体的含义我已经写在注释中
下面是鼠标点击后,随即显示光标
1.每次点击就设置光标在鼠标位,2.并且清空字符串的数据,开始新的一轮输入,所以说这个地方如果将光标点到有字体的地方输入的时候会覆盖之前输入的文字。3.记录鼠标点击的这个点,用来作为移动光标的一个基点
展示效果:
原文:https://www.cnblogs.com/Super-biscuits/p/13907565.html