一、統一風格漂亮界面設計的理論與實現
a.窗口和對話框
Windows操作系中窗口和對話框在我們看來是一樣的,就是一個四邊形,有標題欄、系統按鈕,邊框等,可移動和可變大小。實際上窗口和對話框是有的區別的。在創建對話框窗口時的工作中要發生兩個主要過程:對話框的過程和其窗口過程。Win32 SDK對話框使用了系統提供的對話框窗口的窗口過程和對話框過程,對話框過程將被窗口過程調用。在MFC下,所有的窗口類都使用了同一個窗口過程,對話框類也一樣。MFC對話框過程只處理WM_INITDIALOG消息,其余都讓窗口過程處理,我們只能在函數OnInitDialog()中有唯一機會處理我們的對話框的初始化工作。因而我們設計界面時要在窗口過程處理中相關消息實現我們的界面。
b. 幾個有關對話框窗口消息的處理
1.WM_NCPAINT:重畫非客戶區消息
重載此消函數,可以標題欄上為所欲為。
2. WM_NCLBUTTONDOWN:在非客戶區上按下鼠標左鍵消息
要想在標題欄相應鼠標左鍵,可重載此消函數
3.WM_NCMOUSEMOVE:在非客戶區上移動鼠標會產生此消息
4.WM_SIZE:在窗口改變大小後產生此消息。
為了使軟件更專業,調整對放框大小時,裡面的各控件也應合理調整位置和大小,
重載此消函數可實現目的。還有很幾個,其它的不介紹了。
c. 統一的界面風格實現
如何運用上述知識請參考我的前一文讓你的軟件界面更漂亮 [VC][一]中有介紹並有源程序。漂亮界面的統一風格是如何實現的將是本文要討論主要內容。
我們知道Windows操作系統窗口風格基本上是一致的,微軟的應用軟件程序也和操作系統風格基本是統一的。所以使我們的CDialog 也跟其一樣,要改變它的界面風格很困難。除非你對MFC了如指掌,甚至要了解操作系統內核。本人在摸索過程中經過無數次碰壁後,終於找到了希望。
請看下面兩幅圖:
圖一