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.

相关文章
相关标签/搜索