在VC下界面的美化比較麻煩,但方法也不少,因爲投入時間不能太多,因此只能找些簡單的美化方法,下面記錄下本身美化程序時用到的一些方法,因爲程序比較簡單,高手能夠略過.ide
首先,我用的是MFC對話框程序,按鈕確定是美化的,網上比較出名的有CButtonST,功能比較強大,但具體的使用方法,這裏就不復制粘貼了,能夠去網上找。函數
若是不作的很是好看,用MFC自帶的CBitmapButton類就能夠了,二行至三行就能夠搞定,適合很是懶的,固然按鈕的Owner draw要變成true:this
m_bttm.LoadBitmaps(IDB_1,IDB_2,IDB_3,IDB_4); m_bttm.SubClassDlgItem(控件號,父窗口類); //感受不加這句運行的也很好呀。(不知道有啥用,求問) m_bttm.SizeToContent();
這樣的話,一個按鈕的貼圖就完成了,是否是挺簡單的(由於我們要求低*_*),在LoadBitmaps函數中就能夠指定鼠標按下、擡起、離開、禁用等狀態的圖片顯示了。spa
第三句是控件適應圖片大小。不解釋了,下而來張圖片吧。設計
因爲按鈕的背景色,與對話框的背景色不同,因此看起來,特別的彆扭。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了,固然大牛會本身畫的除外,圖片上了後,你須要按鈕的顏色與對話框背景的顏色一致,否則,就像我上面那張圖,一下看出倪端了。把上面背景色修改後,效果以下:
這時候位圖按鈕的圖片看起來就天然多了,但因爲這個圓型按鈕旁邊的顏色與對話框背景的顏色還不是很相近,因此仍是能夠看得出來白色的部分,這時候就須要美工來修改了,若是本身會PS的話,也能夠修改下,好了,很簡單的說了下原理,設計部分仍是交給你們去構思。
其它控件,也能夠經過CTLCOLOR消息去過濾,而後進行改變,支持的各種有:
CTLCOLOR_DLG 對話框
CTLCOLOR_EDIT 編輯框
CTLCOLOR_LISTBOX 列表框
CTLCOLOR_MSGBOX 消息框
CTLCOLOR_SCROLLBAR 滑動條
CTLCOLOR_STATIC 靜態文本框、矩形等。
注意:一些重載函數也會引發背景顏色與圖片的不正常顯示,如WM_DRAWITEM.