程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> Disable粗體字的生成

Disable粗體字的生成

編輯:vc教程

摘 要:

       字體的Disable狀態如果放大加粗就可以產生很震撼的宣傳效果,放在About對話框裡,更可以增強軟件本身的藝術效果。
實際上,這種字體是“畫”(Paint)上去的,那麼不可缺少的操作就是OnPaint,另外,一個必用的類就是CFont,生成字體和字的大小。

舉例說明。產生的效果如圖。

第一步,添加變量 CFont m_font;

           定義顯示的字符串 #define STSIGN "Sailmer Angent"
 
第二步,添加設置字體的函數 SetFont (CString m_str, int nHeight, int nWeight, BYTE bItalic, BYTE bUnderline)
 
實現如下:

void CDisableFontDlg::SetFont(CString m_str, int nHeight = -16, int nWeight = FW_BOLD, BYTE bItalic = TRUE, BYTE bUnderline = FALSE)
{
          if(m_font.m_hObject)
          {
              m_font.Detach();
          }
          m_font.CreateFont(nHeight, 0, 0, 0, nWeight, bItalic, bUnderline,0,0,0,0,0,0, m_str);

 
第三步,初始化字體

在 OnInitDialog() 函數中添加:SetFont("Verdana", -25);
 
第四步,添加OnPaint消息,實現如下:

CPaintDC dc(this); // device context for painting
// Draw font
     CRect m_rect;
     GetWindowRect(m_rect);
     ScreenToClIEnt(m_rect);
 
     CFont* OldFont = dc.SelectObject(&m_font);
 
     CSize sizestr = dc.GetTextExtent(DISPLAYSTR, strlen(DISPLAYSTR));
 
     dc.DrawState(CPoint((m_rect.Width()-sizestr.cx)/2, 10), 
         m_rect.Size(), 
         DISPLAYSTR, 
         DSS_DISABLED, // Set Disable State
         TRUE, 0, (CBrush*)NULL);
 
     dc.SelectObject(OldFont);

到此為止就可以完成任務了。此程序經過調試,完全可用。

調試環境:Windows XP

編譯環境:Visual Studio 2003

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved