1. 程式人生 > >VC++軟體介面風格簡單美化

VC++軟體介面風格簡單美化

為了讓軟體能在視覺上給使用者帶來一種清新的感覺,從而避免潛在的使用者視覺疲勞和審美疲勞,軟體一般都要經過專業的介面設計和美化。但是,我們不是也沒有專業的介面設計美化人員,所以只能對軟體的介面和風格進行初步的簡單美化,主要是色調的搭配、圖片、字型的簡單美化處理等基本工作。

下面結合例項,詳細介紹一下之前的軟體開發中所用到的兩種軟體介面風格簡單美化的方法:

(1)採用OnCtlColor函式,對軟體的介面進行簡單的美化。()
   採用這種方式,只能對軟體介面在背景顏色、控制元件顏色、字型等方面做簡單的美化。其主要的操作步驟如下:

   1)在相應的.h檔案中新增OnCtlColor函式:

afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
   2)在相應的.cpp檔案中新增訊息對映巨集:
BEGIN_MESSAGE_MAP(CPoint11Dlg, CDialog)
ON_WM_CTLCOLOR()//OnCtlColor函式的訊息對映巨集
END_MESSAGE_MAP()
   3)在相應的.cpp檔案中編寫OnCtlColor函式的實現體:
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch (nCtlColor) 
{ 
case CTLCOLOR_STATIC: //靜態文字
{ 
   pDC->SetBkMode(TRANSPARENT); 
   HBRUSH B = CreateSolidBrush(RGB(191,219,255)); //控制元件背景顏色
   pDC->SetTextColor(RGB(0,0,0)); //控制元件中的文字的顏色
   return (HBRUSH) B; 
}       
break;                
case CTLCOLOR_DLG : //對話方塊背景
{ 
   pDC->SetBkMode(TRANSPARENT); 
   HBRUSH B = CreateSolidBrush(RGB(191,219,255)); 
   pDC->SetTextColor(RGB(0,0,0)); 
   return (HBRUSH) B; 
}      
break; 
default:   
   return hbr; 
   break; 
}
   ※需要注意的一點是:當對話方塊背景顏色和靜態文字的背景色設定一樣時,軟體介面中的靜態文字產生的陰影將消失,使得介面更加整潔。


(2)使用SkinMagic外掛,對軟體的整體介面風格進行改變和美化。(完整的例項程式可在我的CSDN資源中下載
   使用這種方式,可以改變軟體的整體風格,從而也改變了軟體中所有細節的風格,可以達到比較好的整體美化效果。但是,使用這種方式也有它自己的缺點,那就是雖然SkinMagic外掛是一個免費的外掛,但是它所提供的介面風格是相當有限的,而且這其中的介面風格比較清新好看的更是少之又少。SkinMagic外掛的使用步驟如下:

   1)將SkinMagicLib.h,SkinMagicTrial.lib,SkinMagicTrial.dll

三個檔案copy到程式目錄中。
   2)SkinMagicLib.h新增到工程的“標頭檔案”中;在工程“屬性”頁的“配置屬性-連結器-輸入”的“附加依賴項”中輸入SkinMagicTrial.lib。

   3)stdafx.h中新增:

#include "SkinMagicLib.h"
#pragma comment(lib,"SkinMagicTrial.lib")
   4)"工程名App.cpp"或者"工程名.cpp"中的InitInstance()函式中新增:
VERIFY(1==InitSkinMagicLib(AfxGetInstanceHandle(),_T("Demo"),NULL, NULL));
CString str;
str.Format("%ssmf\\corona.smf",g_BasePath);
VERIFY(1==LoadSkinFile(_T(str)));
SetDialogSkin(_T("Dialog"));
   5)在專案的配置屬性中改為使用“使用多位元組字符集”字符集,否則編譯時會出現函式名無法解析的錯誤。