本人在站内看到很多相关帖子 ,但回答的都不尽人意. 比如很多人都说用 LOGFONT 这个结构可以实现.但实际并非如此. 当设置角度后,一行文字用drawtext方法输出时,越靠后的文字部分,只能显示一半或者更少或者根本显示不出来.好像被截断了.
不知道有没有高人用什么方法可以实现文字任意角度旋转,而且显示完整.
另外有人知道windows的图片编辑器里面,有个添加文字的功能,其中可以使文字改变方向,使文字竖着横着排.不知道怎么实现啊!!!也一并请教.希望大家救命啊!!!!
不知道有没有高人用什么方法可以实现文字任意角度旋转,而且显示完整.
另外有人知道windows的图片编辑器里面,有个添加文字的功能,其中可以使文字改变方向,使文字竖着横着排.不知道怎么实现啊!!!也一并请教.希望大家救命啊!!!!
DrawText那是自己画。你可以参考http://msdn.microsoft.com/en-us/library/ms533957(VS.85).aspx
首先有一个问题你必须接受,那就是Windows的窗口只能是正矩形,不能倾斜也不能是不规则的。当然你会说,有不规则的啊?
其实不规则的窗口只是外形上不规则,最根本上还是正矩形。Edit也是一个窗口,它也只能是正矩形。所以,你在使用LOGFONT的时候文字一旋转就超出了这个矩形的范围,就会被截断。有一种方法,就是根据文字的倾斜计算Edit的客户区应该是一个多大的正矩形,然后再动态设定Edit的大小,最后再旋转文字。另外一种,抛弃MFC的Edit控件吧,自己写一个类,没有基类的类。 自己添加文字选中、删除、鼠标响应等函数功能。
DrawText/TextOut 输出到内存DC,对内存DC 进行旋转矩阵变换,再拷贝输出到屏幕
===========================================================
那就做一个大一点的CEdit不就行了或者把字体改小,呵呵没做过瞎说的
其实不规则的窗口只是外形上不规则,最根本上还是正矩形。 Edit也是一个窗口,它也只能是正矩形。所以,你在使用LOGFONT的时候文字一旋转就超出了这个矩形的范围,就会被截断。 有一种方法,就是根据文字的倾斜计算Edit的客户区应该是一个多大的正矩形,然后再动态设定Edit的大小,最后再旋转文字。 另外一种,抛弃MFC的Edit控件吧,自己写一个类,没有基类的类。 自己添加文字选中、删除、鼠标响应等函数功能。