MFC编辑框中光标问题

MFC编辑框中光标问题,第1张

没有看到代码。只能帮你分析一下。

UpdateData(FALSE)函数的意思是:

将窗口控件的变量的值赋值到控件上,UpdateData(TRUE)将控件上的值赋值到窗口控件的变量。可能问题就出在多次调用UpdateData(FALSE)上。

也可能是因为你在响应编辑框EN_CHANGE消息时,处理过程中调用到了SetSel()函数,造成你每次编辑框内容改变就会从新获取焦点,这样光标就变动了。

---------------------------------------

补充:

你是不是想通过鼠标点击某个按钮把内容加到编辑框里例如计算器?

不管怎么样,你非得用SetSel()的话,你看看SetSel()参数设置错没有

CString str;

m_editGetWindowText(str);//m_edit是编辑框CEdit变量

int i=strlen(str);

m_editSetSel(i,i);//i表示光标选中的起始和结束位置范围

---------------------------------------

——————————————————————————————————

再次补充。

UpdateData(FALSE)相当于刷新编辑框。当编辑框刷新后焦点将在最前面。

你写成这样就对了:

UpdateData(FALSE);

((CEdit)GetDlgItem(IDC_INPUT_EDIT))->SetSel(m_strinputGetLength(), m_strinputGetLength(),FALSE);

说下转大小写的问题。

可以使用CString的MakeUpper()函数。

我还想说下你的算法。

if(c<'0' || c>'9' && c<65 || c>70)

你的这句我真理解不了,看不懂。 感觉你的算法还有点问题。

我给你改了下代码:

UpdateData(TRUE);

char c=m_strinputGetAt(m_strinputGetLength()-1);

//下面这句判断输入的是否是0-9或者A-F或者a-f不是就清空。你需要其他的自己改

if ((c>='0' && c<='9') || (c>='A' && c<='F') || (c>='a' && c<='f'))

m_strinputMakeUpper();//整个字符串里的小写转大写

else

m_strinputEmpty();

UpdateData(FALSE);

((CEdit)GetDlgItem(IDC_EDIT1))->SetSel(m_strinputGetLength(),\

m_strinputGetLength(),FALSE);

1/1

打开应用程序

打开访达侧栏上的应用程序。

2/4

点击实用工具

点击页面上的实用工具

3/4

点击打开终端

点击打开页面上的终端。

4/4

输入命令并执行

打开后在终端里输入命令,按回车执行即可。

Control + A 跳到本行的行首

Control + E 跳到本行的行尾

Control + U 删除光标前面(左侧)的所有文字(还有剪切功能),如果光标样式是“块”,不包含光标所在位置的字符

Control + K 删除光标后面(右侧)的所有文字(还有剪切功能),包含光标所在位置的字符

Control + A + K 删除整行,其实就是先把光标移到行首(Control + A),再删除光标后面的所有文字(Control + K)

Control + L 清屏

Clear 清屏

Command + K 清屏

Control + W 删除光标前面(左侧)的单词,不包含光标所在位置的字符

Esc + D 删除光标后面(右侧)的单词,包含光标所在位置的字符

Control + D 删除光标所在位置的字符,命令行若无任何字符,则等效退出

Control + C 终止命令

Option + ← 向左按单词移动光标

Option + → 向右按单词移动光标

Control + Y 粘贴 Ctrl + U 或 Ctrl + K 剪切的内容

删除

快捷键 说明

Control + U 删除当前光标前面(即左边)的所有字符(还有剪切功能),如果光标样式是“块”,则光标所在位置的字符保留

Control + K 删除当前光标后面(即右边)的所有字符(还有剪切功能),如果光标样式是“块”,则光标所在位置的字符也会一起删除

Control + A + K 删除整行

Control + E + U 删除整行

Control + K + U 删除整行

Control + W 删除光标前面(即左边)的单词,如果光标样式是“块”,光标所在位置的字符保留

Esc + D 删除光标后面(即右边)的单词,其实是删除光标后面的字符直到词尾,如果光标样式是“块”,则光标所在位置的字符也会一起删除

Control + D 删除光标所在位置的字符,命令行若无所有字符,则等效退出。光标样式是“块”才有效果,否则无效果

Control + H 删除光标前面的一个字符,相当于 Delete 键

Fn + Del 删除光标后面的一个字符

清屏

快捷键 说明

Control +L 进行清屏 *** 作

Clear 清屏

Command + K 清屏

复制粘贴

快捷键 说明

Control + Y 粘贴之前删除的内容到光标前,也就是Ctrl+W,Ctrl+K,Ctrl+U,Esc+D删除的内容

Command + C 复制

Command + V 粘贴

交互/撤销

快捷键 说明

Control + T 将光标处的字符和光标前一个字符的位置进行交互

Control + _ 撤销 *** 作,每按一次就会回退一次

移动光标

快捷键 功能说明

Control + A 光标移动到行首,相当于通常的Home键

Control + E 光标移动到行尾,相当于通常的End键

Control + F 光标向右移动一个字符位置,相当于右方向键

Control + B 光标向左移动一个字符位置,相当于左方向键

Esc + B 往前(左)移动一个单词,组合键每按一下才会移动一个单词,不好用

Esc + F 往后(右)移动一个单词,组合键每按一下才会移动一个单词,不好用

Option + ← 向左按单词移动光标

Option + → 向右按单词移动光标

查找历史命令

快捷键 说明

Control + P 显示上一条历史命令(相当于上键)

Control + N 显示下一条历史命令(相当于下键)

Control + R 搜索历史命令,输入搜索词会显示历史命令中的一条匹配命令,Enter键执行匹配命令,其实非常不好用,按ESC键从搜索历史命令模式退出到命令行,且匹配到的命令保留在命令行

Control + G 从搜索历史命令模式(Control + R)退出,且匹配到的命令不会保留在命令行

使用命令查看历史命令

history # 查看所有的历史命令

history -d 5 # 删除第5条历史命令

history -c # 清除历史命令

标签页

快捷键 说明

Command + T 新建标签

Command + W 关闭当前标签页

Command + S 保存终端输出

Command + D 垂直分隔当前标签页

Command + Shift + D 水平分隔当前标签页

Command + shift + { 向左切换标签

Command + shift + } 向右切换标签

控制命令

快捷键 说明

Control + S 阻止屏幕输出

Control + Q 允许屏幕输出

Control + C 终止命令

Control + Z 挂起命令(使用fg命令恢复)

滚屏

快捷键 说明

Fn + ← 向上滚屏到开始处

Fn + → 向下滚屏到末尾处

Fn + ↑ 向上分页滚屏

Fn + ↓ 向下分页滚屏

Fn + Command + ← 向上滚屏到开始处

Fn + Command + → 向下滚屏到末尾处

Fn + Command + ↑ 向上分页滚屏

Fn + Command + ↓ 向下分页滚屏

命令行模式:进入vim后的默认模式,用户可以输入vim命令来管理自己的文档,此时从键盘上输入任何字符都会当成编辑命令,输入合法的vim命令,vim会完成相应的动作

文本输入模式:在命令模式下输入i/I 或者a/A 进入输入模式,就可以在文本文件内输入内容了,按下ESC则回到命令行模式

末行模式:在命令行模式下输入:进入末行模式

一般进入vim 都是vim后面跟着文件名

如果当前文件夹下没有此文件,则会在目录下新生成此文件

注:如果你直接vim进入编辑器,而没有跟文件名,他也会进去,但是你退出时需要指定文件名称

如果你想进入编辑器中的具体某一行(指光标所在的行)

需要进入文本输入模式

命令模式下输入i进入文本输入模式可以输入内容了,在光标所在字符之前进行插入

输入I 是在光标所在行行首进行输入

输入a是在光标所在字符的后面进行插入

输入A是在光标所在行行末进行输入

输入o在光标所在行下面插入一空行

输入O在光标所在行上面插入一空行

你可以在输入模式下按Delete或者退格键(Backspace)进行删除文本,我将介绍一些在命令行下如何删除文本

x —— 删除光标所在的字符

X —— 删除光标所在字符前面的字符

D或者d$ ——删除光标所在位置到行末的字符

dd——删除光标所在一行

yy——复制光标所在行

Y——复制光标所在位置到行尾

y0——复制光标前一位到行首

p——粘贴

v/V——选中文本

u/U——撤销

——重复上次执行的命令

需要进入文本末模式

:q——退出

:q!——强制退出

:w——保存

:wq——保存并退出

j——向下

k——向上

h——向左

l——向右

H——前面加数字代表光标移动到哪行行首,(当前屏幕)

M——移动到文本中间,或者屏幕中间行的行首

L——移动到文本末或者屏幕底部行行首,可以加数字

G——不受屏幕限制,是文本的行数

:set number ——设置行号

/string ——查找命令

以上就是关于MFC编辑框中光标问题全部的内容,包括:MFC编辑框中光标问题、苹果电脑打开cmd快捷键、vim使用指南等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9708625.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存