VBGood网站全文搜索 Google

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

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
楼主: 19900603

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

[复制链接]
发表于 2012-8-26 13:59:10 | 显示全部楼层
19900603 发表于 2012-8-26 13:45
我这办法你试试能改不 就是貌似 GetTextWidth 出错了
  我再看看
    hTextFont = CreateFontHandle( ...

更改字体成功,但是Hook ExtTextOut的处理代码无法得到正确文本
回复 支持 反对

使用道具 举报

发表于 2012-8-26 14:19:20 | 显示全部楼层
19900603 发表于 2012-8-26 13:56
怪不得。。 改字体后 绘字的方式又改变了

不是调用SelectObject hdc,hfont设置DC文本?

点评

设置DC太没效率了。。。 看楼下回复  发表于 2012-8-26 14:22
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-26 14:21:51 | 显示全部楼层
找到解决办法了。。。
判断 字符串地址 只对第一行做处理 只是 字符串长度要自己提取

这样的话 直接用TextBox 算啦

本帖子中包含更多资源

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

x

点评

Textbox has 65535 limit  发表于 2012-8-26 14:55
第一行?什么第一行  发表于 2012-8-26 14:24
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-26 15:59:12 | 显示全部楼层
本帖最后由 19900603 于 2012-8-26 16:00 编辑
19900603 发表于 2012-8-26 14:21
找到解决办法了。。。
判断 字符串地址 只对第一行做处理 只是 字符串长度要自己提取


@sunfrank
简单  
If OnlpString + OnCount = lpString Then
不做处理 但 Rect.Left 返回1  
Else
解析本行并绘出()

保存当前绘字的字符串地址和长度
OnlpString  = lpString
OnCount  = nCount
End If
回复 支持 反对

使用道具 举报

发表于 2012-8-26 16:48:06 | 显示全部楼层
19900603 发表于 2012-8-26 15:59
@sunfrank
简单  
If OnlpString + OnCount = lpString Then

对第一行做处理 ?怎么处理第一行
回复 支持 反对

使用道具 举报

发表于 2012-8-26 16:56:24 | 显示全部楼层
本帖最后由 sunfrank 于 2012-8-26 16:57 编辑
19900603 发表于 2012-8-26 15:59
@sunfrank
简单  
If OnlpString + OnCount = lpString Then


我这里情况很奇特,设字体后,Hook里VB识别lpstring为乱码(长度和正常字符串相等),但是ExtOutText正常显示
  1.                 ReDim StrBuffer(nCount * 2)
  2.                 CopyMemory StrBuffer(0), ByVal lpString, nCount * 2
  3.                 Code = StrBuffer
复制代码
应该是这几行出了问题

点评

看楼下  发表于 2012-8-26 18:47
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-26 18:44:41 | 显示全部楼层
本帖最后由 19900603 于 2012-8-26 18:58 编辑


不用EDIT了 直接 TextBox 哇塞爽啊 IDE中运行无崩溃
把没用的功能 删了。。速度比 Edit未改字体时略慢些,, 但是感觉不到卡 欢迎继续找Bug


'前面加过分了? 没关系继续加 偶不嫌多滴







本帖子中包含更多资源

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

x

评分

参与人数 4威望 +26 人气 +5 收起 理由
vkensou + 5 -1 神马都是浮云
404022 + 7 + 1 神马都是浮云
wtywtykk + 10 + 2 神马都是浮云
sunfrank + 4 + 3 神马都是浮云

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2012-8-26 20:25:30 | 显示全部楼层
Bug Bug Bug!

本帖子中包含更多资源

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

x

点评

是调用的我上面那个Dll 么 下面那个圈是怎么回事  发表于 2012-8-26 22:12
这个是怎么出现的?  发表于 2012-8-26 22:04
回复 支持 反对

使用道具 举报

发表于 2012-8-26 20:26:53 | 显示全部楼层
本帖最后由 sunfrank 于 2012-8-26 20:28 编辑

VB Hook ExtTextOut 还是用来美化好了

变成

本帖子中包含更多资源

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

x

点评

这个是什么意思?  发表于 2012-8-26 22:05
回复 支持 反对

使用道具 举报

发表于 2012-8-26 20:39:01 | 显示全部楼层
本帖最后由 sunfrank 于 2012-8-26 20:45 编辑
19900603 发表于 2012-8-26 18:44
不用EDIT了 直接 TextBox 哇塞爽啊 IDE中运行无崩溃
把没用的功能 删了。。速度比 Edit未改字体时略慢些 ...


Bug太多了。还是我写的Javascript Online代码高亮好,而且是跨平台的http://sceny.tk/highlight


  1. //Sceny Javascript Highlight By Sceny.tk
  2. var scenyhighlight=s={x:{h:/&|<|>|[\x7F-\xFF]|[\u0100-\u2700]/g,q:/([^`<>0-9a-zA-Z\s\)\]\/][ \t\v]*|^|return\s*)("|'|\/)(([^\\<\n]|(\\.))*?)\2/g,c:/\/\/(.*)$/gm,cs:/\/\*([^\x00]*?)\*\//g,m:/(0x[0-9ABCDEF]+)|(\(\s*)([0-9]+)(\s*\))/g,k:/([^a-zA-Z0-9_\-]|^)(break|const|continue|delete|do|while|export|for|in|function|if|else|import|instanceOf|label|let|new|return|switch|this|throw|try|catch|typeof|var|void|with|yield|false|true|null)(?![a-zA-Z0-9_\-])|(\{|\}|\[|\])/g,f1:/<u>\/\/<\/u>/g,f2:/<\/b>([ \t\v]*)<b>/g,f3:/<u>(.*?)<\/u>/g,f4:/<\/?(ins|i|b|s)>/g,f5:/<(i|u)>(.*?)<\/\1>/g,f6:/<i>|<b>|<u>|<\/i>|<\/b>|<\/u>|<ins>|<\/ins>/g,f7:/(<u>.*?)\/\/(.*?<\/u>)/g,f8:/&s;/g,f9:/<ins>(.*?)<\/ins>/g,f10:/<\/?(i|u|b|s)>/g,f11:/<u>\/(.*?)\/<\/u>/g,},format:function(txt){var a=txt,p=function(v,r,t){a=v.replace(r,t)};p(a,this.x.h,function($0){var k=$0.charCodeAt(0),r=["&#"];k=(k==0x20)?0xA0:k;r.push(k); r.push(";");return r.join("");});p(a,/`/g,'&x;');p(a,/</g,'`');p(a,s.x.q,'$1<u>$2$3$2</u>');p(a,s.x.f1,'//');p(a,s.x.cs,'<i>/*$1*/</i>');p(a,/`/g,'&lt;');p(a,/&x;/g,'`');p(a,s.x.m,"$2<s>$1$3</s>$4");p(a,s.x.k,'$1<b>$2$3</b>');p(a,s.x.f2,"$1");p(a,s.x.f3,function($0,$1){var a=$1,b=a.replace(s.x.f4,"");return "<u>"+b+"</u>"});p(a,s.x.f5,function ($0,$1,$2){var a=$1,b=$2;return "<"+a+">"+b.replace(s.x.f6,"")+"</"+a+">";});p(a,s.x.f7,'$1&s;$2');p(a,s.x.c,"<ins>//$1</ins>");p(a,s.x.f8,'//');p(a,s.x.f9,function($0,$1){var a=$1;var b=a.replace(s.x.f10,"");return "<ins>"+b+"</ins>"});p(a,s.x.f11,'<i>/$1/</i>');var t=a.split('\n'),tt="",l=t.length,v="<p class=";for(var i=0;i<l;i++) {a=t[i];p(a,/^/g,'<p>');p(a,/\x09| {4}/g,'<p>');p(a,/(<p>){6}/g,v+'"i5">');p(a,/(<p>){5}/g,v+'"i4">');p(a,/(<p>){4}/g,v+'"i3">');p(a,/(<p>){3}/g,v+'"i2">');p(a,/(<p>){2}/g,v+'"i1">');p(a,/$/g,"</p>");tt+=a+"\n";}a=tt;return a;}}
复制代码

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2022-7-3 16:05

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