国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
讓你的軟件界面更漂亮 [VC]
一、統(tǒng)一風格漂亮界面設計的理論與實現(xiàn)

a.窗口和對話框

  Windows操作系中窗口和對話框在我們看來是一樣的,就是一個四邊形,有標題欄、系統(tǒng)按鈕,邊框等,可移動和可變大小。實際上窗口和對話框是有的區(qū)別的。在創(chuàng)建對話框窗口時的工作中要發(fā)生兩個主要過程:對話框的過程和其窗口過程。Win32 SDK對話框使用了系統(tǒng)提供的對話框窗口的窗口過程和對話框過程,對話框過程將被窗口過程調(diào)用。在MFC下,所有的窗口類都使用了同一個窗口過程,對話框類也一樣。MFC對話框過程只處理WM_INITDIALOG消息,其余都讓窗口過程處理,我們只能在函數(shù)OnInitDialog()中有唯一機會處理我們的對話框的初始化工作。因而我們設計界面時要在窗口過程處理中相關消息實現(xiàn)我們的界面。

b. 幾個有關對話框窗口消息的處理

  1.WM_NCPAINT:重畫非客戶區(qū)消息

  重載此消函數(shù),可以標題欄上為所欲為。

  2. WM_NCLBUTTONDOWN:在非客戶區(qū)上按下鼠標左鍵消息

  要想在標題欄相應鼠標左鍵,可重載此消函數(shù)

  3.WM_NCMOUSEMOVE:在非客戶區(qū)上移動鼠標會產(chǎn)生此消息

  4.WM_SIZE:在窗口改變大小后產(chǎn)生此消息。

  為了使軟件更專業(yè),調(diào)整對放框大小時,里面的各控件也應合理調(diào)整位置和大小,

  重載此消函數(shù)可實現(xiàn)目的。還有很幾個,其它的不介紹了。

c. 統(tǒng)一的界面風格實現(xiàn)

  如何運用上述知識請參考我的前一文讓你的軟件界面更漂亮 [VC][一]中有介紹并有源程序。漂亮界面的統(tǒng)一風格是如何實現(xiàn)的將是本文要討論主要內(nèi)容。

  我們知道Windows操作系統(tǒng)窗口風格基本上是一致的,微軟的應用軟件程序也和操作系統(tǒng)風格基本是統(tǒng)一的。所以使我們的CDialog 也跟其一樣,要改變它的界面風格很困難。除非你對MFC了如指掌,甚至要了解操作系統(tǒng)內(nèi)核。本人在摸索過程中經(jīng)過無數(shù)次碰壁后,終于找到了希望。

請看下面兩幅圖:

 

 

圖一

圖二

  看了上面兩圖你是不是對VC有信心了?Visual C++ 可實現(xiàn)你想要的統(tǒng)一風格界面。請看如何實現(xiàn):

  1.首先要建立漂亮界面主窗口。它也是一個對話框,方法前文有介紹。

  2.處理漂亮界面主窗口的OnInitDialog()函數(shù)。很重要??!

BOOL CTitleBarDlg::OnInitDialog()
{
//此處 不能修改和添加代碼!因為其它對話框的OnInitDialog()要用到

m_ToolTip.Create(this,TTS_ALWAYSTIP);//Create提示
m_ReSizeFlag = TRUE;

CRect rtWnd;
GetClientRect(&rtWnd);
m_OldWidth = rtWnd.Width();
m_OldHeight = rtWnd.Height();
OldPoint.x = rtWnd.Width();
OldPoint.y = rtWnd.Height();
if(!m_BaseFlag)
{
m_BaseFlag = TRUE;
CDialog::OnInitDialog();

//************************************

你只能在處修改和添加你所需主窗口初始化的代碼
……
//************************************
}

return TRUE;
}

3.建立你的對話框和對話框類。
  用對話框資源編輯器完成對話框模板。用ClassWizard生成CyourDlg類此時基類只能為CDialog。

  4.修改基類CDialog為漂亮界面類(CtitleBarDlg)

  yourDlg.h yourDlg.cpp 內(nèi)的CDialog都要改,用Edit/Replace功能快些且安全。

  在yourDlg.h還要包括TitleBarDlg.h

  注意:對話框構造函數(shù)第一個參數(shù)CtitleBarDlg nID 要刪除。否則通Build通不過。

  5. 顯示你的窗口

//顯示代碼
CyouDlg *pMyDlg;
pMyDlg = new CyouDlg;
pMyDlg->Create(IDD_YOUR_DLG);
pMyDlg->ShowWindow(SW_SHOW);


  這種代碼要在適當?shù)臅r候delete pMyDlg,防內(nèi)存泄露。由于 pMyDlg沒有定義為全局,處理它有一定難度。如果是用DoModal()顯示就好了,大家可以去試一下。解決了告訴我!

  6. 完成編譯運行。你的對話框的風格是不是和主窗口一樣,有沒顯示出來?

二.說明

  統(tǒng)一風格的漂亮界面基本達到了目的。但同樣也存在幾個問題:

  1.漂亮界面界必須是主窗口。我還沒有想出方法能讓它獨立出來。

  2.顯示其它子窗口只能是非模式對話框窗口方式。我嘗試DoModal顯示但沒有成功。但我分析MFC后找到了笨方法,MFC也是這么做。

  3.基于述原因,我建立了統(tǒng)一的界面風格的開發(fā)模板,只有在此模板上開發(fā)就能實現(xiàn)軟件漂亮統(tǒng)一的界面風格。需要可和我聯(lián)系! 若有機會我會和大家繼續(xù)探討漂亮界面的實現(xiàn)的其它難點。

三、結束語

  源代碼請參考源代碼(附件)

本人聯(lián)系方法:song_0962@sina.com QQ:34544052

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用EasySize實現(xiàn)控件隨窗口的大小變化
VC程序中定制對話框中的回車鍵
在VC6.0及VS中添加對話框oninitdialog()函數(shù)的方法
VC/MFC如何設置對話框背景顏色_paul的夢想天堂
DialogBar的用法技巧
VC對話框隱藏運行 (四)懸浮窗
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服