人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

VC編程中如何在界面上完成3D文字

VC編程中如何在界面上完成3D文字

更新時間:2022-10-18 文章作者:未知 信息來源:網絡 閱讀次數:

作者: 劉 濤

  一般情況下,程序開發人員都希望自己的程序美觀大方,為了達到這一個要求,想盡辦法美化自己的程序,如果在界面上適當的地方添加并顯示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();
}
}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 台北县| 婺源县| 温泉县| 若尔盖县| 葫芦岛市| 九龙城区| 庐江县| 霸州市| 牙克石市| 高碑店市| 垦利县| 宜黄县| 吉林市| 青川县| 全椒县| 麟游县| 法库县| 呈贡县| 永济市| 吴江市| 云龙县| 离岛区| 盐边县| 丽江市| 多伦县| 英山县| 新竹县| 陇西县| 阜康市| 吉木乃县| 巴林右旗| 东乌珠穆沁旗| 广西| 河西区| 闵行区| 温宿县| 甘泉县| 綦江县| 莒南县| 连山| 鹤峰县|