悬浮窗口(智能隐藏和显示)的一种实现方案

本文介绍了实现悬浮窗口的多种特性,包括与主窗口的二选一显示、始终置前、全窗口拖动、半透明效果以及淡入淡出效果。通过定时器检测主窗口状态,利用API判断窗口遮挡和全屏状态,以实现悬浮窗口的智能管理。
摘要由CSDN通过智能技术生成

悬浮窗口应该具有的特性

为了实现让用户能方便打开软件主窗口,又不对用户界面造成明显的视觉干扰,悬浮窗口应该有以下特点:

  • 和主窗口是二选一的关系,主窗口显示时自动隐藏,主窗口被全部遮挡时自动显示
  • 始终置前,不被其它窗口遮挡,全屏播放电影、截图软件截图等情形时,取消置前。
  • 支持全窗口拖动
  • 半透明效果,鼠标移上时全为不透明
  • 为了使隐藏和出现不显得突兀,支持淡入淡出效果
  • 点击悬浮窗时,呼出主窗口,并隐藏悬浮窗口

上述特点的实现方案

整个实现方案依赖于主窗口内的一个定时器(200ms),定时检查主窗口的显示状态以及悬浮窗口的顶置属性。

和主窗口是二选一的关系,主窗口显示时自动隐藏,主窗口被全部遮挡时自动显示

与主窗口二选一的显示,是通过定时检查主窗口的显示状态,来设置是否显示悬浮窗口。
如果主窗口未隐藏,并且没有被其它窗口完全遮挡(可以是一个或者多个窗口的组合),悬浮窗口不显示。

IsEntirelyCovered(HWND hWnd)(http://blog.csdn.net/harbinzju/article/details/6781646)函数可以判断一个窗口,是否被完全遮挡住,可能是被一个或者多个窗口遮挡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值