WEB开发网
开发学院软件开发VC 用VC实现竖写汉字的方法 阅读

用VC实现竖写汉字的方法

 2008-11-13 19:31:31 来源:WEB开发网   
核心提示: 1.建立一个MFCAppWizard(exe)应用工程CHNfont,在MFCAppWizard向导的第一步中选择SingleDocument,用VC实现竖写汉字的方法(3),再点击按键Finish->OK完成工程的建立,2.在CMainFrame::OnCreate函数中添加如下代

1.建立一个MFCAppWizard(exe)应用工程CHNfont。在MFCAppWizard向导的第一步中选择SingleDocument,再点击按键Finish->OK完成工程的建立。

2.在CMainFrame::OnCreate函数中添加如下代码,使窗体最大化。AfxGetMainWnd()->ShowWindow(SW_SHOWMAXIMIZED);

3.添加如下代码实现竖写功能。

voidCChildView::OnPaint()
   {
CPaintDCdc(this);//devicecontextforpainting
///////利用CFont::CreateFont(...)函数实现竖写汉字////////
CFontmyFont;  //创建字体对象
//创建逻辑字体
myFont.CreateFont(
              56,    //字体高度(旋转后的字体宽度)=56
              20,    //字体宽度(旋转后的字体高度)=20
              2700,    //字体显示角度=270°
              0,         //nOrientation=0
              10,        //字体磅数=10
              FALSE,       //非斜体
              FALSE,       //无下划线
              FALSE,    //无删除线
              DEFAULT_CHARSET,  //使用缺省字符集
              OUT_DEFAULT_PRECIS,//缺省输出精度
              CLIP_DEFAULT_PRECIS,//缺省裁减精度
              DEFAULT_QUALITY,  //nQuality=缺省值
              DEFAULT_PITCH,   //nPitchAndFamily=缺省值
              "@system");    //字体名=@system
CFont*pOldFont=dc.SelectObject(&myFont);//选入设备描述表
CRectrtClient;
GetClientRect(rtClient); //获取客户区尺寸、位置信息
//在客户区适当位置输出文字
dc.TextOut(rtClient.Width()/2+30,rtClient.Height()/8,
       "无边落木萧萧下");
dc.SelectObject(pOldFont);//将myFont从设备环境中分离
myFont.DeleteObject();  //删除myFont对象
///////////利用LOGFONT结构实现竖写汉字//////////////
LOGFONTlf;          //定义字体结构
lf.lfWeight=10;        //字体磅数=10
lf.lfHeight=56;   //字体高度(旋转后的字体宽度)=56
lf.lfWidth=20;         //字体宽度(旋转后的字体高度)=20
lf.lfUnderline=FALSE;     //无下划线
lf.lfStrikeOut=FALSE;     //无删除线
lf.lfItalic=FALSE;       //非斜体
lf.lfEscapement=2700;     //字体显示角度=270°
lf.lfCharSet=DEFAULT_CHARSET; //使用缺省字符集
    strcpy(lf.lfFaceName,"@system");//字体名=@system
  
CFontmyLogFont;         //定义字体对象
myLogFont.CreateFontIndirect(&lf);//创建逻辑字体
pOldFont=dc.SelectObject(&myLogFont);//选入设备描述表
//在客户区适当位置输出文字
dc.TextOut(rtClient.Width()/2-30,rtClient.Height()/8,
        "不尽长江滚滚来");
dc.SelectObject(pOldFont);//将myFont从设备环境中分离
myLogFont.DeleteObject(); //删除myLogFont对象
   }

4.编译连接,运行。

以上实例在Windows98下,以VC++6.0编译通过。

上一页  1 2 3 

Tags:VC 实现 汉字

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接