• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VC編程中如何在界面上實現3D文字

    發布: 2007-7-14 21:11 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 38次 | 進入軟件測試論壇討論

    領測軟件測試網 作者: 劉 濤

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

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>