当前位置:编程学习 > wap >>

在WM6.5上用drawstring如何绘出旋转90度的文字

如题,请高手指点 --------------------编程问答-------------------- 最简单的方法是,先画到一张图片上,在贴到窗体上。 --------------------编程问答-------------------- 可以设置逻辑字体:LogFont 来描画。
具体楼主参考下MSDN,很详细:
http://msdn.microsoft.com/zh-cn/library/ms404359(VS.90).aspx --------------------编程问答-------------------- jiangyongtao 你好:
   
   我还遇到以下问题,文字旋转后显示不完全,如图所示旋转45度、90度时的样子


请问怎么解决?

代码如下:
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            LogFont lf;
            Font myFont;
  
            lf = new LogFont();
            lf.Height = -32;
            lf.Width = 0;
            lf.Escapement = 0;
            lf.Orientation = 0;
            lf.Weight = (LogFontWeight)0;
            lf.Italic = 0;
            lf.Underline = 0;
            lf.StrikeOut = 0;
            lf.CharSet = LogFontCharSet.Default;
            lf.OutPrecision = LogFontPrecision.Default;
            lf.ClipPrecision = LogFontClipPrecision.Default;
            lf.Quality = LogFontQuality.Default;
            lf.PitchAndFamily = LogFontPitchAndFamily.Default;
            lf.FaceName ="";
            myFont = Font.FromLogFont(lf);

            e.Graphics.DrawString("卫星云图", myFont, new SolidBrush(Color.Black), 200, 500, new StringFormat(StringFormatFlags.NoWrap | StringFormatFlags.NoClip));


            lf.Escapement = 450;
            lf.Orientation = 450;
            myFont = Font.FromLogFont(lf);

            e.Graphics.DrawString("卫星云图", myFont, new SolidBrush(Color.Black), 200, 500, new StringFormat(StringFormatFlags.NoWrap | StringFormatFlags.NoClip));

            lf.Escapement = 900;
            lf.Orientation = 900;
            myFont = Font.FromLogFont(lf);

            e.Graphics.DrawString("卫星云图", myFont, new SolidBrush(Color.Black), 200, 500, new StringFormat(StringFormatFlags.NoWrap | StringFormatFlags.NoClip));

        } --------------------编程问答-------------------- 记得我见过这样的例子,回家给你找找去 --------------------编程问答-------------------- blue601 等你哦 --------------------编程问答--------------------
引用 2 楼 jiangyongtao 的回复:
可以设置逻辑字体:LogFont 来描画。
具体楼主参考下MSDN,很详细:
http://msdn.microsoft.com/zh-cn/library/ms404359(VS.90).aspx


如果你有DotNET CF在WindowsCE命名空间下已经提供了逻辑字体,其实还可以通过PInvoke GDI的API完成。

注意调整空间,让旋转后字体有足够空间显示 --------------------编程问答-------------------- 我刚上传了,得审核通过才能显示?有空楼主去看看吧
http://blue601.download.csdn.net/

对了,这个不是WM6.5,但主要是看代码吧,毕竟得看懂了才能用嘛,应该和WM6.5是共同的 --------------------编程问答-------------------- 有了有了
http://download.csdn.net/source/2864195 --------------------编程问答-------------------- blue601:
   你给的例子是将文字绘到图形上,再将图形绘到窗体上。我想要的是直接drawstring到窗体上。
   
   我试了发现直接drawstring到窗体上在netCF2.0上是好的,而在netCF3.5上就出现上面图示的情况了。

    --------------------编程问答-------------------- 3.5?你直接开发wm6.0。也能用在wm6.5上跑 --------------------编程问答-------------------- 编译好的程序在6.0上运行正常,在6.5上不行。
现在我没有文字转90度了,直接把屏幕转90度,效果还不错 --------------------编程问答-------------------- 用二楼说的
微软里的确是那个类来自己创建自己的样式的文字的。
可以360角度的旋转
看看MSDN吧,很好用
我也做过demo --------------------编程问答--------------------
补充:移动开发 ,  Windows Phone
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,