有了下面这个VC编程中如何在界面上实现3D文字教程,不懂VC编程中如何在界面上实现3D文字的也能装懂了,赶紧get起来装逼一下吧!
【 tulaoshi.com - 编程语言 】
一般情况下,程序开发人员都希望自己的程序美观大方,为了达到这一个要求,想尽办法美化自己的程序,如果在界面上适当的地方添加并显示3D文字,将不失为一个好的选择,可以达到事半功倍的效果,本文针对这一问题,通过一个简单的小程序,介绍如何实现这一目标。有兴趣的读者可以稍加改动,将该方法应用到自己的程序中去。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)   首先启动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(); 
} 
} 
来源:http://www.tulaoshi.com/n/20160219/1602609.html
看过《VC编程中如何在界面上实现3D文字》的人还看了以下文章 更多>>