自定义形状界面MFC

        作为一个人,我们都是具有审美观点的,爱美之心人皆有之,如何是自己做出的程序更美,更漂亮,是每个程序员的心愿,每天看到的都是方方块块的矩形窗口,是不是很腻,很呆板。今天偶然想到怎么自定义界面形状的问题。然后就开搜索相关的知识,本来以为很难的东西,不过看过之后也没有那么难了。

        我们可以想想每个程序都关连一个区域,这个区域决定将来程序的显示区域,超出区域之外的东西都不属于这个程序了。由此引出了一个函数:

int SetWindowRgn(
   HRGN hRgn,
   BOOL bRedraw 
);

这个函数就是设置窗口的区域,将来的Dc也就是在这个东西上面画东西。不过通过GetClientRect获取的区域和这个区域并不是等同的,GetClientRect获取的是一个矩形,包含这个区域的矩形。

有了设置区域的函数,就需要有个区域哇,HRGNi就是与区域关联的句柄,有了句柄就可以干自己相干的事。可是怎么创建区域句柄呢?这就涉及到一个类:CRgn这个类封装了对区域操作。可以用里面的Create***函数创建所想要的区域......

下面贴一段代码帮忙理解:

		//m_rgnWnd一个CRng类,与窗口的作用域相同.
		m_rgnWnd.CreateEllipticRgn(0, 0, 111, 111); 
		// 将m_rgnWnd设置为窗口区域 
    		SetWindowRgn((HRGN)m_rgnWnd, false); 
		CRect rect;
		GetClientRect(&rect); 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC定义界面HUI,高效简单,含详细注释和示例。 HUI包括基本控件、按钮、标签、编辑框、表格、悬停提示等,可组合出更多功能。资源占用少,效率高,能在低端机上运行,流畅不闪烁,完全满足工控等各种专业软件实现个性化要求。 本资源是“http://download.csdn.net/detail/hhhh63/6961889”的正式发布版。包括3个项目,Hui、HuiDemo1和HuiDemo2。 一、Hui项目 本项目是DLL项目,包括完整的界面库,使用双缓存,局部重画等技术,性能优异。为保证在不同的MFC版本中使用,本次上传提供了这部分的源码,一般不要对其改动。 二、HuiDemo1 简单的应用示例,包括窗口分割,控制面板和主显示区等,展示控件各方向停靠、自动充满、全屏切换、记忆窗口位置和大小、选项设置和保存注册表等功能,用户可直接以此为基础开发新项目。如需扩展其它功能,可从HuiDemo2查找复制相应代码。 三、HuiDemo2 除HuiDemo1的所有功能外,还包括界面库的全部功能和其它实用扩展功能,左中右三栏式分布,左右固定宽度,中间栏大小可变。 1、左边是属性栏,固定宽度,上边是时钟,下边是鼠标信息,当鼠标移到中间的图像区时显示鼠标位置和图像值。 2、中间是图像区,演示如何动态生存索引图像,从下向上移动,自适应大小,长宽比不变,点右边的调色板按钮改变颜色,点保存按钮把当前图像保存到桌面。 3、右边上边是控制栏,在中间的图像区中画各种几何图形,并计算几何图形包围的图像数据的最大值,最小值和平均值。 4、右边下边是表格演示,显示Windows文件夹下的文件列表,自动充满窗口区,随窗口大小改变显示项数,保证界面美观,最下面是搜索和定位功能。 四、运行环境,VC2010或更高版本。 欢迎大家下载并提意见,本资源版权归作者所有,分享供大家研究学心,不得用于商业用途,如有特殊要求请与本人联系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值