拖动窗体时使窗体半透明

如是大家细心的话,在使用“Virtual Drive Manager”也就是一个非常小的虚拟光驱的时候,在它的设置里有一个“启用窗口的 Alpha 混合半透明效果”功能。这个功能很友善,就是在你想拖动窗体的时候,窗体会自动的渐隐,等到你松开窗口的时候,窗体就恢复到不透明的状态。下面是 该功能的截图今天要做的就是让我们的程序也实现这个功能。

 

OK先分析一下它的功能。

1.当点击标题栏的时候,让窗口半透明

2.当松开标题栏的时候,窗口自动恢复不透明的状态

明天了原理之后我们就可以很简单的来实现这个功能了,点击标题栏我们可以用“ON_WM_NCLBUTTONDOWN”这个事件来触发。当松开标题栏的时候可以使用“ON_WM_NCLBUTTONUP”事件。但现在有问题了,在我写的过程中“ON_WM_NCLBUTTONUP”当松开对标题栏的点击时程序不会触发“ON_WM_NCLBUTTONUP”事件。所以这程序就渐接的转换为使程序响应“ON_WM_NCLBUTTONUP”事件。

 

值得说的是可以用ON_WM_SYSCOMMAND事件来得到“ON_WM_NCLBUTTONUP” ,好了,下面让我们来实现这个小程序吧

 

首先先建立一个“基本对话框”程序。有没有关于对话框都一样,如是有的话就省略后面写ON_WM_SYSCOMMAND这个事件了。OK,我就建立一个不要关于对话框的程序

首先先添加“ON_WM_NCLBUTTONDOWN”,这个事件在VC6.0是没有办法找到怎么添加的,所以我们要手动添加。在

添加好之后再添加对应的函数响应

再在对应的Dlg.h中声明 OnNcLButtonDown 函数为事件函数

这样编译一下就可以现在点击标题栏时的半透明窗口了。

OK,下面以相同的方法添加“ON_WM_NCLBUTTONUP”和“ON_WM_SYSCOMMAND” 由于内容基本一样,所以就不写打了,直接给代码

OK,编译一下看看自己的程序是什么样子的吧,是不是感觉它很“温和”呢。呵呵。。

下面是我的程序截图

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值