VC下的界面基本美化

在VC下界面的美化比较麻烦,但方法也很多,由于投入时间不能太多,所以只能找些简单的美化方法,下面记录下自己美化程序时用到的一些方法,由于程序比较简单,高手可以略过.

首先,我用的是MFC对话框程序,按钮肯定是美化的,网上比较出名的有CButtonST,功能比较强大,但具体的使用方法,这里就不复制粘贴了,可以去网上找。

如果不做的非常好看,用MFC自带的CBitmapButton类就可以了,二行至三行就可以搞定,适合非常懒的,当然按钮的Owner draw要变成true:

m_bttm.LoadBitmaps(IDB_1,IDB_2,IDB_3,IDB_4);
m_bttm.SubClassDlgItem(控件号,父窗口类); //感觉不加这句运行的也很好呀。(不知道有啥用,求问)
m_bttm.SizeToContent();

这样的话,一个按钮的贴图就完成了,是不是挺简单的(因为咱们要求低*_*),在LoadBitmaps函数中就可以指定鼠标按下、抬起、离开、禁用等状态的图片显示了。

第三句是控件适应图片大小。不解释了,下而来张图片吧。

由于按钮的背景色,与对话框的背景色不一样,所以看起来,特别的别扭。

下面来改变对话框的颜色,或者给对话框上图片的代码。

改变颜色:

网上有很多办法,这只是其中一个比较简单的:

1、在OnPaint里修改

2、在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   静态文本框、矩形等。

时间: 2024-07-30 10:14:34

VC下的界面基本美化的相关文章

jquery.chosen.js下拉选择框美化插件项目实例

由于之前使用的bootstrap-select插件是建立在bootstrap基础上的,实际使用到项目中的时候,与我们使用的ace-admin(基于bootstrap)存在样式冲突,导致下拉框的样式发生变化.为了界面的美观,不得已查资料寻找另外的插件. 使用jquery.chosen.js下拉选择框美化插件同样也能达到类似效果 完成效果如下 实现步骤如下 1.导入相关文件 <link rel="stylesheet" href="${ctxStatic}/css/chos

VC++下封装ADO类以及使用方法

操作系统:windows 7软件环境:visual studio 2008 .Microsoft SQL 2005本次目的:介绍一个已经封装的ADO类,简单说明怎么导入使用 首先声明一下,这个封装的ADO类是在[vc知识库 ]下载的,因为最近在数据库课程设计,所以对vc++下使用ADO连接数据库不是很了解,故若是本文有错误的地方的,请不吝指出.具体的ADO类各个封装功能请进入[原文地址 ]查看.在此仅介绍使用此ADO封装类的入门,如连接数据库,显示记录等.一个测试例子如下: 使用步骤:1.先从[

linux下字符界面与桌面切换的快捷键总结

首先桌面版的是带有图形化的,最出名的windows,专业点的用的linux. 我比较喜欢Ubuntu的和centos的版本. 如果想要界面互相切换,前提是你得装了桌面版的,如果没装肯定切换不了的. 切换到字符界面:ctrl+shift+alt+F1 切换到桌面界面:alr+F7 真实机下面:ctrl+alt+F1 切换到字符界面:alr+F7 原文链接:  linux下字符界面与桌面切换的快捷键总结

VC++下编译 程序“减肥”

在vc6 和 vs 2008下 编译 以下代码,不更改任何编译设置(vc6  40k , s2008 7k). 一.vc6下,Release 模式 编译处理. 1.去掉不必要的 链接库  工程(Project)-->设置(Settings)-->链接(link)属性页-->对象库/模块(object/library modules) 去掉所有的lib. 选择使用 MSVCRT.LIB kernel32.lib user32.lib. 可以忽略不必要的警告,比如 LINK:warning

VC下调试内存泄漏的办法

VC的控制台程序不会跟踪内存泄漏,如果需要调试控制台程序的内存情况,需要_CrtSetDbgFlag 详细原理我也不太懂,我也是从网上摘过来的,直接帖代码 // 内存泄漏跟踪 #ifdef WIN32 #include <SDKDDKVer.h> #ifdef _DEBUG #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> #define VC_MemLeakCheck() _CrtSet

VC下&#39;long&#39; followed by &#39;long&#39; is illegal

long long 类型在VC6.0编译错误 long long int 是GCC(GNU C)的64位表示法. VC里面只能用__int64 有两种解决办法: 1.只需要把long long 替换成__int64即可, 注意一定要点击下保存按钮否则头文件修改无效还是编译不通过 2.或者是:如下 stdint.h文件重新建立,并输入以下信息 /* ISO C9x 7.18 Integer types <stdint.h> * Based on ISO/IEC SC22/WG14 9899 Co

网站下拉界面的实现

大家在逛网站的时候有没有遇到过,操作失误时会从网站顶端出现下拉框的提示,或者在某个网站的首页单击 mennu会出现下窗体的列表.下面小编带你一块儿来学习这是如何做成的.首先大家先看一下效果 效果展示(1): 展示效果(2): 下面看一下代码是如何实现的. html代码: <div class="menu"> <a href="#" class="right_bt" id="activator"><

在VC下如何使用头文件unistd.h

头文件unistd.h是Linux/Unix的系统调用,包含了许多UNIX系统服务函数原型,如open.read.write._exit.getpid等函数.在linux下能够编译通过的包含此头文件的程序,在VC下编译时出现了如下问题 fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory 其实解决这个问题的方法并不难,只要在你的默认库文件夹下(我的电脑是D:\Program Files

在VC下显示JPEG、GIF格式图像的一种简便方法

在VC下显示JPEG.GIF格式图像的一种简便方法 一. 引言  JPEG图像压缩标准随然是一种有损图像压缩标准,但由于人眼视觉的不敏感,经压缩后的画质基本没有发生变化,很快便以较高的压缩率得到了广泛的认可.GIF格式虽然仅支持256色但它对于颜色较少的图像有着很高的压缩率,甚至超过JPEG标准,也得到了广泛的认同.但作为众多程序员的一个重要的开发工具--Microsoft Visual C++ 6.0的MFC库却仅对没有经过任何压缩的BMP位图文件有着良好的支持,可以读取.显示.存储甚至在内存