VC++中编辑框使用问题
(1)使用程序在编辑框的焦点处插入字符串,并且插入字符后焦点移动到刚刚插入的字符串后面;(2)编辑框中插入程序代码后实现格式缩进(编辑框是用来输出程序源代码的)。如果有比...
(1)使用程序在编辑框的焦点处插入字符串,并且插入字符后焦点移动到刚刚插入的字符串后面; (2)编辑框中插入程序代码后实现格式缩进(编辑框是用来输出程序源代码的)。如果有比编辑框更好用的控件也行。您只用给出一个实现思路并且介绍一下用到的主要方法以及控件需要连接的变量就行了。
展开
2个回答
展开全部
自己写一个CScirptEditView类吧。我以前写过一个。网上还有很多代码。
我写的这个类的主要功能是:
1、主要负责自定义语言脚本的源代码编辑。
2、当前行高亮显示。
3、行号显示。
4、支持文件拖入窗口打开方式。
5、支持语法着色。
6、支持UNICODE,UTF8,ANSI等编码格式。
7、支持Windows、UNIX、MAC等不同格式的回车换行符。
7、支持代码块拖动。
8、支持正则表达式描述的搜索和替换。
9、支持代码自动完成,函数提示等功能。
10、支持窗口动态切分。
11、支持自定义插入符,(带颜色或位图插入符、不同大小的插入符)表示不同的编辑状态。
12、支持代码自动缩进。
13、支持代码格式化。(将风格乱糟糟的代码一下子自动整理成书写风格良好的代码)
14、支持书签功能。
实现思路:
建立视图类,CScriptEditView派生自CView,负责显示数据。
建立数据类,CScriptBuffer,派生自CObject,负责代码数据的存储、搜索、组织和管理。
CScriptBuffer类的事实上就是一个CString数组的管理,每一行都是一个CString对象。以实现方便快速的编辑。
CScriptEditView类就是针对CScriptBuffer存储的代码进行词法分析,以不同的颜色、字体等显示出来。其它的功能就是响应鼠标、键盘消息而已,虽然工作量很大,但是难度不高。
----------------------------------
其实我的代码完全参考学习了Nodpad++的源代码。
Nodepad++是开源的,你可以搜一下Nodepad++,支持30多种语言的编辑。功能很强大,而且体积很小,效率很高。
搜一下出来一堆,去官方网站下载即可。是台湾人写的。
我写的这个类的主要功能是:
1、主要负责自定义语言脚本的源代码编辑。
2、当前行高亮显示。
3、行号显示。
4、支持文件拖入窗口打开方式。
5、支持语法着色。
6、支持UNICODE,UTF8,ANSI等编码格式。
7、支持Windows、UNIX、MAC等不同格式的回车换行符。
7、支持代码块拖动。
8、支持正则表达式描述的搜索和替换。
9、支持代码自动完成,函数提示等功能。
10、支持窗口动态切分。
11、支持自定义插入符,(带颜色或位图插入符、不同大小的插入符)表示不同的编辑状态。
12、支持代码自动缩进。
13、支持代码格式化。(将风格乱糟糟的代码一下子自动整理成书写风格良好的代码)
14、支持书签功能。
实现思路:
建立视图类,CScriptEditView派生自CView,负责显示数据。
建立数据类,CScriptBuffer,派生自CObject,负责代码数据的存储、搜索、组织和管理。
CScriptBuffer类的事实上就是一个CString数组的管理,每一行都是一个CString对象。以实现方便快速的编辑。
CScriptEditView类就是针对CScriptBuffer存储的代码进行词法分析,以不同的颜色、字体等显示出来。其它的功能就是响应鼠标、键盘消息而已,虽然工作量很大,但是难度不高。
----------------------------------
其实我的代码完全参考学习了Nodpad++的源代码。
Nodepad++是开源的,你可以搜一下Nodepad++,支持30多种语言的编辑。功能很强大,而且体积很小,效率很高。
搜一下出来一堆,去官方网站下载即可。是台湾人写的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询