VC下的界面基本美化

    在VC下界面的美化比較麻煩,但方法也不少,因爲投入時間不能太多,因此只能找些簡單的美化方法,下面記錄下本身美化程序時用到的一些方法,因爲程序比較簡單,高手能夠略過.ide

    首先,我用的是MFC對話框程序,按鈕確定是美化的,網上比較出名的有CButtonST,功能比較強大,但具體的使用方法,這裏就不復制粘貼了,能夠去網上找。函數

    若是不作的很是好看,用MFC自帶的CBitmapButton類就能夠了,二行至三行就能夠搞定,適合很是懶的,固然按鈕的Owner draw要變成truethis

m_bttm.LoadBitmaps(IDB_1,IDB_2,IDB_3,IDB_4);
m_bttm.SubClassDlgItem(控件號,父窗口類); //感受不加這句運行的也很好呀。(不知道有啥用,求問)
m_bttm.SizeToContent();

這樣的話,一個按鈕的貼圖就完成了,是否是挺簡單的(由於我們要求低*_*),在LoadBitmaps函數中就能夠指定鼠標按下、擡起、離開、禁用等狀態的圖片顯示了。spa

第三句是控件適應圖片大小。不解釋了,下而來張圖片吧。設計

wKioL1So_qrQ0rrrAADgzpP5Wyw853.jpg

因爲按鈕的背景色,與對話框的背景色不同,因此看起來,特別的彆扭。blog


下面來改變對話框的顏色,或者給對話框上圖片的代碼。圖片

改變顏色:資源

網上有不少辦法,這只是其中一個比較簡單的:get

一、在OnPaint裏修改it

二、在OnCtlColor裏修改

等,應該還有的

在onPaint裏添加:

CRect rect;
CPaint dc(this);
GetClientRect(&rect);
dc.FillSoliRect(rect,RGB(255,255,0));


這是改變背景顏色。

下面是貼背景圖:

this->Invalidate();
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateComPatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(BMP圖片資源號);
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
HBITMAP* pOldbmp = (HBITMAP*)dcMem.SelectObject(bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);

OK,圖片貼完了。


下面說***意,要想把界面作的好看,仍是須要美工的,不是隨便在網上找幾個圖貼上就OK了,固然大牛會本身畫的除外,圖片上了後,你須要按鈕的顏色與對話框背景的顏色一致,否則,就像我上面那張圖,一下看出倪端了。把上面背景色修改後,效果以下:

wKioL1SpSdbBBJQPAABlcVHsGm0279.jpg

這時候位圖按鈕的圖片看起來就天然多了,但因爲這個圓型按鈕旁邊的顏色與對話框背景的顏色還不是很相近,因此仍是能夠看得出來白色的部分,這時候就須要美工來修改了,若是本身會PS的話,也能夠修改下,好了,很簡單的說了下原理,設計部分仍是交給你們去構思。

其它控件,也能夠經過CTLCOLOR消息去過濾,而後進行改變,支持的各種有:

CTLCOLOR_DLG   對話框 
CTLCOLOR_EDIT   編輯框 
CTLCOLOR_LISTBOX   列表框   
CTLCOLOR_MSGBOX   消息框 
CTLCOLOR_SCROLLBAR   滑動條 
CTLCOLOR_STATIC   靜態文本框、矩形等。

注意:一些重載函數也會引發背景顏色與圖片的不正常顯示,如WM_DRAWITEM.

相關文章
相關標籤/搜索