NSIS安装界面无虚线框移动

最近很多应用程序都在安装界面的美化上面下足了功夫,一个漂亮流畅的安装界面无疑会给其带来用户体验上的加分,其中一个无虚线框跟随鼠标移动比较有趣,狂翻msdn后终于找到了控制函数SystemParametersInfo,他的参数SPI_SETDRAGFULLWINDOWS既为此功能而生,具体引用到nsis中:

 System::Call 'user32::SystemParametersInfo(i${SPI_SETDRAGFULLWINDOWS},i1,i0,i0)'
将其放置在界面的鼠标响应回调中即可实现窗口无虚线框的即时跟随,但有一个问题,这样操作是对系统视觉效果的修改,虽然可以达到无虚线框移动的目的,但会导致所有的窗口都会成为这类移动方式,无虚线框移动的视觉效果其实就是系统在后台不停地绘制被移动的界面,全部实现这种效果会极大加重系统负担,所以,在鼠标左键拖动完毕松开后,还要在加上一句:

System::Call 'user32::SystemParametersInfo(i${SPI_SETDRAGFULLWINDOWS},i0,i0,i0)'

恢复为系统默认的窗口显示方式

我写的两个对比演示例子

PPTV界面(有虚线拖动)


 

演示例子下载:http://115.com/file/bhyx5u0w

酷狗7(无虚线框拖动)

演示程序下载:http://115.com/file/e6e5sj4r

你可能感兴趣的:(原创,NSIS)