网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
VC编程中如何在界面上实现3D文字
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

作者: 刘 涛

  一般情况下,程序开发人员都希望自己的程序美观大方,为了达到这一个要求,想尽办法美化自己的程序,如果在界面上适当的地方添加并显示3D文字,将不失为一个好的选择,可以达到事半功倍的效果,本文针对这一问题,通过一个简单的小程序,介绍如何实现这一目标。有兴趣的读者可以稍加改动,将该方法应用到自己的程序中去。

  首先启动VC生成一个新的基于对话框的项目,命名为3Dtext,在对话框中重载OnPaint()函数,具体实现的思想是通过CDC::SetTextColor()分别设置文字的颜色为高亮(3DHILIGHT)和阴影(3DSHADOW)的状态下显示文字;同时注意在两次显示文字时要错开一个像素,这样才能达到预期的效果。具体实现代码如下:

void CMy3DTextDlg::OnPaint()
{ if (IsIconic())
{
 CPaintDC dc(this); // device context for painting
 SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
 // Center icon in client rectangle
 int cxIcon = GetSystemMetrics(SM_CXICON);
 int cyIcon = GetSystemMetrics(SM_CYICON);
 CRect rect;
 GetClientRect(&rect);
 int x = (rect.Width() - cxIcon + 1) / 2;
 int y = (rect.Height() - cyIcon + 1) / 2;
 // Draw the icon
 dc.DrawIcon(x, y, m_hIcon);
}
else
{
 CPaintDC dc(this); // device context for painting
 CString string;
 string="电脑报,我们的学习报";
 CFont m_fontLogo;
 m_fontLogo.CreateFont(44, 0, 0, 0, 55, FALSE, FALSE,0,0,0,0,0,0, "Arial");
 dc.SetBkMode(TRANSPARENT);
 CRect rectText;
 GetClientRect(&rectText);
 CFont * OldFont = dc.SelectObject(&m_fontLogo);
 // draw text in DC
 COLORREF OldColor = dc.SetTextColor( ::GetSysColor( COLOR_3DHILIGHT));
 dc.DrawText( string, rectText+CPoint(1,1) , DT_SINGLELINE | DT_LEFT | DT_VCENTER|DT_CENTER);
 dc.SetTextColor( ::GetSysColor( COLOR_3DSHADOW));
 dc.DrawText( string, rectText, DT_SINGLELINE | DT_LEFT | DT_VCENTER|DT_CENTER);
 // restore old text color
 dc.SetTextColor( OldColor);
 // restore old font
 dc.SelectObject(OldFont);
 // CDialog::OnPaint();
}
}

  • 下一篇资讯: VC5中使用标签控件
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号