首页
社区
课程
招聘
[求助]关于RichEdit
发表于: 2006-4-7 16:48 6438

[求助]关于RichEdit

2006-4-7 16:48
6438
哪们朋友能提供一些有关RichEdit的资料
在Google上搜了半天基本上都是同一篇(Iczelion的)

我们这学期开C语言课,打算做一个语法高亮的环境,可是越做越乱套 别笑偶菜啊

问题如下:

1:用EM_SETCHARFORMAT设置了字体,但和用DrawText()和TextOut()写上去和直接打上去的不一样;

2:怎么跟据CHARFORMAT2.yHeight计算字体实际的高度

3:好像用DrawText()写上去的字,在用鼠标选择的时候不反相显示

4:怎么样设置RichEdit才能在拖动滚动条的时候,一行一行的滚动,不会出现半行

还有一个不是关于RichEdit的问题:

有什么快捷的方法来获得Caps键和Insert键的状态吗?

谢谢~~~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
自已先顶一个

2:怎么根据CHARFORMAT2.yHeight计算字体实际的高度

试了试可以用两次EM_POSFROMCHAR来获得第一行和第二行的第一字符的左上角坐标,两个坐标的y值相减来获得字符的高度,而不用CHARFORMAT2.yHeight
2006-4-7 20:14
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
在顶一个

3:好像用DrawText()写上去的字,在用鼠标选择的时候不反相显示

看Iczelion的程序的时候不细心,把SetBkMode()当成SetBkColor()
用SetBkMode()设置上TRANSPARENT就能在看上去像被选择了似的,不过不是反相,只是背景和被选择的文字背景一样,正文颜色还是DrawText()写上去的颜色
2006-4-9 08:17
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
4
最后一个好像可以用GetKeyStatus函数解决
2006-4-9 22:29
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
谢谢

不过查了查应该是GetKeyState(int nVirtKey)函数
还有键盘上的Insert键好像跟MSDN上说的有点不一样
当当前为插入模式时,LOWORD(GetKeyState(VK_INSERT))==0
当当前为覆盖模式时,LOWORD(GetKeyState(VK_INSERT))==1

但MSDN上是这样写的:

If the low-order bit is 1, the key is toggled.
A key, such as the CAPS LOCK key, is toggled if it is turned on.

The key is off and untoggled if the low-order bit is 0.

A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.
2006-4-10 07:55
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
现在最头疼的是:

1:用EM_SETCHARFORMAT设置了字体,但和用DrawText()和TextOut()写上去和直接打上去的不一样;

4:怎么样设置RichEdit才能在拖动滚动条的时候,一行一行的滚动,不会出现半行

这两个问题。第一个解决不了,就不能自己设置字体,第四个解决不了,绘制行号就不准确。

顺便问一下,罗云彬的《Windows环境下32位汇编语言程序设计》和Charles Petzold的《Windows程序设计》里的内容重叠的多吗?
我有前一本书,在网找了一本《Winows程序设计》的电子图书,看着两本书的差别不小,着重点不一样,打算买一本《Windows程序设计》不过有点拿不定主意,160¥啊~~,不是个小数,可别浪费了
2006-4-10 08:07
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
再来一个

4:怎么样设置RichEdit才能在拖动滚动条的时候,一行一行的滚动,不会出现半行

发现用EM_POSFROMCHAR返回的Y坐标,能让行号和所指的行在Y坐标上保持对齐

好像有点答非所问,但也算是“曲线救国”吧

不过效果好像更好
2006-4-10 22:51
0
游客
登录 | 注册 方可回帖
返回
//