在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.