VC编程在界面上实现3D文字
一般情况下,程序开发人员都希望自己的程序美观大方首映周票房3.3百万美元。,为了达到这一个要求,想尽办法美化自己的程序,如果在界面上适当的地方添加并显示3D文字,将不失为一个好的选择,可以达到事半功倍的效果,本文针对这一问题,通过一个简单的小程序,介绍如何实现这一目标。有兴趣的读者可以稍加改动,将该方法应用到自己的程序中去。
首先启动VC生成一个新的基于对话框的项目,命名为3Dtext,在对话框中重载OnPaint()函数,具体实现的思想是通过CDC::SetTextColor()分别设置文字的颜色为高亮(3DHILIGHT)和阴影(3DSHADOW)的状态下显示文字;同时注意在两次显示文字时要错开一个像素,这样才能达到预期的效果。具体实现代码如下:
void CMy3DTextDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) tSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(rect);
int x = (dth() - cxIcon + 1) / 2;
int y = (ight() - cyIcon + 1) / 2;
// Draw the icon
awIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this); // device context for painting
CString string;
string="yesky,我们的编程站";
CFont m_fontLogo;
m_eateFont(44, 0, 0, 0, 55, FALSE, FALSE,0,0电子商务宝盒四、具有你的产物Tom Hua电子商务宝盒(PRIMO),0,0,0,0, "Arial");
tBkMode(TRANSPARENT);
CRect rectText;
GetClientRect(rectText);
CFont * OldFont = lectObject(m_fontLogo);
// draw text in DC
COLORREF OldColor = tTextColor( ::GetSysColor( COLOR_3DHILIGHT));
awText( string, rectText+CPoint(1,1) , DT_SINGLELINE DT_LEFT DT_VCENTER DT_CENTER);
tTextColor( ::GetSysColor( COLOR_3DSHADOW));
awText( string, rectText, DT_SINGLELINE DT_LEFT DT_VCENTER DT_CENTER);
// restore old text color
tTextColor( OldColor);
// restore old font
lectObject(OldFont);
// CDialog::OnPaint();
}
}
查看本文来源
亚宝药业薏芽健脾凝胶冠心病高血压服用通心络胶囊怎么样承德治疗白癜风哪家医院好-
滑鼠蛇的价格广西近年来价格一直在走低位置
汤羹2022年06月13日
-
溅水鱼吃什么溅水鱼喜食活饵位置
汤羹2022年06月13日
-
深圳检验检疫局截获多批活体昆虫收货人拿来位置
汤羹2022年06月13日
-
清道夫鱼能吃吗这些你都知道吗位置
汤羹2022年06月13日
-
你需要了解猫咪的生产过程位置
汤羹2022年06月13日
-
你适合养泰迪吗知识位置
汤羹2022年06月13日