VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 38589|回复: 80

[原创] [开源]之另类Edit[代码着色器完美版]无权限,免金币

[复制链接]
发表于 2012-8-24 23:17:40 | 显示全部楼层 |阅读模式
本帖最后由 19900603 于 2012-8-25 21:29 编辑

研究贴 http://www.vbgood.com/thread-114252-1-1.html

啊啊啊 今个真高兴啊。。。 终于完成了。。 完美啊。。。 一点都不卡 CPU也低的可怜
放代码了 现在下载还赠 压缩解压缩模块一个
这么好的东西 申请加精啊 加分啊 之类的。。


关键字 我随便找了点弄上了。。  可能有些 VB中并不高亮 这个无所谓了。。
代码内有注释

完美版代码,老样子 免权限 不出售 有分的给分吧。





效果图








\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
'华丽的分割线,直接修改了帖子 不重发了。。。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


可以改变 按钮字体颜色。 窗体标题颜色(同时Label标签颜色也变了 蛋疼。。)
如果你获取到右键菜单的句柄的话同样也能改变颜色哦
已成功获取到拦截到ExtTextOutW内的字符串  稍做分析着色 就是个代码着色编辑框了
比以前的自绘 啥的 简单多了。。

Ps  Edit 有点小瑕疵 为嘛是 Ctrl + Enter 才换行 ???



在这感谢 @菜鸟学飞@sunfrank  的指点




本来想收养记事本做儿子来着 不料突发奇想 想起来 CreateWindowEx 创建的 Edit  
于是测试了下 很成功
下面来看下 两种控件的绘字方式  图上半部分是 OutputDebugString出来的  ExtTextOutW 内字符串
发现 用 TextBox  效率真的很低

这是 TextBox 的绘字方式(一行代码就绘制N遍 其中 字母 数字 特殊符号都分开了)

这是 Edit 的绘字方式 一行绘一遍(这办法正适合咱呐。。 )


'旧的  不删了  新的在最上面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

非常感谢  发表于 2015-1-8 19:10
最近我也被这个纠结了Ctrl + Enter 才换行,然后我发现把Edit子类化,截取WM_CHAR WP=13,把wp换成10就行  发表于 2013-2-16 18:37
37楼 更新33楼代码 欢迎找Bug  发表于 2012-8-27 09:31
33楼解决回车换行不更新的问题 同时兼容了TextBox和Edit  发表于 2012-8-27 01:09
支持 TextBox 的Dll 更新 27楼  发表于 2012-8-26 18:46

评分

参与人数 19威望 +137 金钱 +8 人气 +34 收起 理由
新手VBVB + 1 赞一个
win895564 + 4 + 1 很给力!
Vblegend + 1 很给力!
ksni2000 + 2 + 1 很给力!
xingjing + 8 + 1 我也尽力了,评上我的最高分!
cxbs + 1 很给力!
acme_pjz + 19 + 3 原创内容
404022 + 8 + 1 牛逼
97521367 + 5 + 1 才不给你加分呢!!!
新林 + 8 + 8 + 3 赞一个!
h907308901 + 13 + 3 赞一个!
vbload + 2 + 1 很给力!
tom789 + 16 + 3 楼主威武又无私,赞一个
startbin321 + 13 + 3 很给力!
南无 + 10 + 2 赞一个!
vkensou + 5 + 1 很给力!
sunshinebean + 10 + 2 挺好的哈哈~~
wtywtykk + 10 + 2 ^_^
sunfrank + 4 + 3 很给力!

查看全部评分

本帖被以下淘专辑推荐:

 楼主| 发表于 2012-8-27 09:31:10 | 显示全部楼层
本帖最后由 19900603 于 2012-8-27 09:39 编辑


个人感觉没啥问题了。。至于对代码高亮不满意的 自己可可以编写解析函数
换行也修复了 不知道是不是和sunfrank一个道理
增加 选中字体色和选中背景色 额。 源码在此 自己研究吧。
DLL完美支持IDE 无崩
欢迎继续找Bug 你们找的越多 CodeEdit越完美

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 2威望 +27 金钱 +20 人气 +1 收起 理由
Vblegend + 7 + 1 很给力!
VBProFan + 20 + 20 很给力!

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-24 23:28:47 | 显示全部楼层
本帖最后由 19900603 于 2012-8-25 21:29 编辑

占个沙发先
回复 支持 反对

使用道具 举报

发表于 2012-8-25 09:56:14 | 显示全部楼层
楼主原来最近在摆弄这个啊,不错啊,可以做成IDE了,呵呵
回复 支持 反对

使用道具 举报

发表于 2012-8-25 10:08:18 | 显示全部楼层
楼主为什么只有在编译后才可以,在IDE里无法显示效果?
回复 支持 反对

使用道具 举报

发表于 2012-8-25 10:33:26 | 显示全部楼层
好帖!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-25 20:39:42 | 显示全部楼层

妹的。。。。终于整出个人样来了。。 不过 选中效果没有了 我再研究研究
值得庆祝的是  一点都不卡 和VB的 IDE编辑框 差不多  嘎嘎







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

Code  发表于 2012-8-25 21:01
回复 支持 反对

使用道具 举报

发表于 2012-8-25 22:03:18 | 显示全部楼层
  1. Public Property Get Text(hwnd As Long) As String
  2.     Dim Buf(10000) As Byte, Length As Long
  3.     Length = GetWindowTextLength(hwnd)
  4.     SendMessage hwnd, WM_GETTEXT, Length, ByVal VarPtr(Buf(0))
  5.     Text = StrConv(Buf, vbUnicode)
  6. End Property
复制代码
这段有点问题.....缓冲区有点小,在我这会崩掉
  1. Public Property Get Text(hwnd As Long) As String
  2.     Dim Buf() As Byte, Length As Long
  3.     Length = GetWindowTextLength(hwnd)
  4.     ReDim Buf(Length)
  5.     SendMessage hwnd, WM_GETTEXT, Length, ByVal VarPtr(Buf(0))
  6.     Text = StrConv(Buf, vbUnicode)
  7. End Property
复制代码
改成这样测试通过

点评

原来如此,谢谢  发表于 2012-8-27 08:24
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-26 01:39:13 | 显示全部楼层
本帖最后由 19900603 于 2012-8-26 01:56 编辑

已封装Dll 具体内容看Demo 和源码
本来想加个 C++的 批量注释 但是效果不太好所以又去掉了
还有个小问题 当回车换行时 空白行不刷新的。 貌似要拦截消息了。。




Basic版着色

C++版着色


自定义着色

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

1# doesn't have this problem that 空白行不刷新. Maybe something wrong with your C++ code?  发表于 2012-8-26 09:11
回复 支持 反对

使用道具 举报

发表于 2012-8-26 09:00:43 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

DLL 版已修正这个问题  发表于 2012-8-26 10:51
回复 支持 反对

使用道具 举报

发表于 2012-8-26 09:04:16 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

这个我加上过 效果不太好 代码被注释了  发表于 2012-8-26 10:52
额。。 英文系统啊。。。。。  发表于 2012-8-26 10:04
I'm using Windows8 English and part of Chinese in vb6 is %&R&R^%^%^&^  发表于 2012-8-26 09:38
为毛乱码了唉  发表于 2012-8-26 09:31
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2023-4-2 06:29

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表