高分求助:怎么使输入光标旋转任意角度?

时间:2021-04-12 17:33:46
我要在程序里面实现文字编辑的功能,用户可以编辑文本,这个文本对象可以任意角度旋转,旋转之后仍然可以输入文字,这时就要求输入文字的光标(就是那个一直闪烁的竖线)可以旋转?请问在vc下怎么实现这个功能,另外还要支持缩放功能?
想到以下方案:
1、根据旋转角度自绘一条竖线,但是怎么能让其有规律地一闪一闪呢?
2、载入动态图片,比如GIF文件,将此资源作为位图图标处理,我试了试bmp位图图标,好像绘制很慢。这种动态图标是不是更慢啊。
3、使用可以旋转任意角度的文本框控件,没找到这样的控件,请问有吗?
4、载入其他工具做的动态链接库。
有人做过吗,求大侠们,有没有更好更简单的办法?

16 个解决方案

#1


这个自己去弄就费劲了,直接用一个CEdit控件吧,如果旋转的话把你文本框的字体设置一下角度也就是控制LOGFONT结构体中的lfOrientation值,如果放大缩小就修改字体大小就行了。
编辑时把这个控件显示到相应的位置,并设置得到焦点即可。这个比较简单好用。

#2


不是很懂        友情帮顶

#3


这个见都没见过,帮不了你.

#4


除了完全自绘,是无法完成的

#5


引用 1 楼 xsc2001 的回复:
这个自己去弄就费劲了,直接用一个CEdit控件吧,如果旋转的话把你文本框的字体设置一下角度也就是控制LOGFONT结构体中的lfOrientation值,如果放大缩小就修改字体大小就行了。
 编辑时把这个控件显示到相应的位置,并设置得到焦点即可。这个比较简单好用。

字体角度跟光标角度有啥关系。。。。


引用 4 楼 jameshooo 的回复:
除了完全自绘,是无法完成的

顶下!

#6


引用 1 楼 xsc2001 的回复:
这个自己去弄就费劲了,直接用一个CEdit控件吧,如果旋转的话把你文本框的字体设置一下角度也就是控制LOGFONT结构体中的lfOrientation值,如果放大缩小就修改字体大小就行了。
 编辑时把这个控件显示到相应的位置,并设置得到焦点即可。这个比较简单好用。


光标依然是垂直的

#7


CreateCaret,指定不同的位图,能不能做到?

#8


不知道有没有第三方控件可以用,即可旋转的文本框

#9


用 WPF 吧
回复内容太短了! 

#10


引用 9 楼 xhk_xhk 的回复:
用 WPF 吧
 回复内容太短了!


请说的详细点好吗,怎么个使用方法,用动态链接库的形式吗?

#11


似乎方法一简单些,但是怎么让其闪烁,而不影响其他图形呢

#12


多做几个光标的资源,贴图应该可行的

#13


引用 12 楼 visualeleven 的回复:
多做几个光标的资源,贴图应该可行的


可是用户旋转文本是任意角度的,那得做多少个光标资源。
我刚才想到,使用一个光标资源,然后加载光标之前将位图旋转,可是觉得这个方法比较笨,而且速度慢

#14


还是按照加载位图光标的方式解决了,用户旋转之后,将位图也旋转相应角度,然后重新加载光标

#15


虽然跟帖的朋友们没有建设性的意见,还是很感谢,给大家发分啦,哈哈

#16


引用 14 楼 pdexcl 的回复:
还是按照加载位图光标的方式解决了,用户旋转之后,将位图也旋转相应角度,然后重新加载光标

旋转位图也是比较NB的了

#1


这个自己去弄就费劲了,直接用一个CEdit控件吧,如果旋转的话把你文本框的字体设置一下角度也就是控制LOGFONT结构体中的lfOrientation值,如果放大缩小就修改字体大小就行了。
编辑时把这个控件显示到相应的位置,并设置得到焦点即可。这个比较简单好用。

#2


不是很懂        友情帮顶

#3


这个见都没见过,帮不了你.

#4


除了完全自绘,是无法完成的

#5


引用 1 楼 xsc2001 的回复:
这个自己去弄就费劲了,直接用一个CEdit控件吧,如果旋转的话把你文本框的字体设置一下角度也就是控制LOGFONT结构体中的lfOrientation值,如果放大缩小就修改字体大小就行了。
 编辑时把这个控件显示到相应的位置,并设置得到焦点即可。这个比较简单好用。

字体角度跟光标角度有啥关系。。。。


引用 4 楼 jameshooo 的回复:
除了完全自绘,是无法完成的

顶下!

#6


引用 1 楼 xsc2001 的回复:
这个自己去弄就费劲了,直接用一个CEdit控件吧,如果旋转的话把你文本框的字体设置一下角度也就是控制LOGFONT结构体中的lfOrientation值,如果放大缩小就修改字体大小就行了。
 编辑时把这个控件显示到相应的位置,并设置得到焦点即可。这个比较简单好用。


光标依然是垂直的

#7


CreateCaret,指定不同的位图,能不能做到?

#8


不知道有没有第三方控件可以用,即可旋转的文本框

#9


用 WPF 吧
回复内容太短了! 

#10


引用 9 楼 xhk_xhk 的回复:
用 WPF 吧
 回复内容太短了!


请说的详细点好吗,怎么个使用方法,用动态链接库的形式吗?

#11


似乎方法一简单些,但是怎么让其闪烁,而不影响其他图形呢

#12


多做几个光标的资源,贴图应该可行的

#13


引用 12 楼 visualeleven 的回复:
多做几个光标的资源,贴图应该可行的


可是用户旋转文本是任意角度的,那得做多少个光标资源。
我刚才想到,使用一个光标资源,然后加载光标之前将位图旋转,可是觉得这个方法比较笨,而且速度慢

#14


还是按照加载位图光标的方式解决了,用户旋转之后,将位图也旋转相应角度,然后重新加载光标

#15


虽然跟帖的朋友们没有建设性的意见,还是很感谢,给大家发分啦,哈哈

#16


引用 14 楼 pdexcl 的回复:
还是按照加载位图光标的方式解决了,用户旋转之后,将位图也旋转相应角度,然后重新加载光标

旋转位图也是比较NB的了