一段时间以来,科学家们有一种界面需求,那就是要在鼠标进入窗口的时候,自动把窗口客户区扩大,显示出有效的UI交互区;当鼠标移出窗口后,再自动把窗口缩回至于标题栏的大小。这个需求在C++层面是有很多方法来实现的,不过稍显复杂的实现方式会阻挡 很多初学者,也会额外增加程序家们的开发时间。那么,有没有一种简单高效,分分钟就能增加这个功能的实现呢,答案就是:玛德界面库(MDui)给你提供了这样一种方法。
那么接下来就是见证奇迹的时刻了:
1. 用玛德界面编辑器创建一个窗口皮肤(玛德界面库里的皮肤概念会另开一篇博客来讲的),里边添加上你的业务需要的各种UI,并且组织好各种UI的位置等(也可以直接手动编辑xml文件,Demo里的皮肤文件是Skin_Rolling.Xml)。这一步的关键是设置"caption"参数,也就是设置窗口标题栏的高度,例子里是【caption="0,0,0,30" 】;
<span style="white-space:pre"> </span><Window alpha="255" bktrans="false" caption="0,0,0,30" roundcorner="5,5" size="1024,768" sizebox="2,2,5,0">
2.
接下来就是注册两个Notify消息的处理(Demo里的文件是Skin_Rolling.Reg.Xml):
mouseenter和mouseleave,这两个消息在2015-01-07之前的玛德版本里是只支持窗口,暂时没有支持到UI层级,所以CtrlName必须设置为空("");
<RegEvent CtrlName="" Event="mouseenter" Function="OnNotify_MouseEnter"></RegEvent>
<RegEvent CtrlName="" Event="mousel