这是群里有人经常询问的一个问题,其实自己仔细看看帮助文档,问问百度谷歌,很好解决。无非是两个方案。
第一,使用ResHacker之类的工具修改nsis自带的ui模版,控件id为1046,用鼠标将控件拖至铺满整个页眉保存后在脚本里面引用即可
第二代码解决这个问题,其实感觉还是修改ui模版是比较直观的办法,也好理解,但代码解决也无不可,看个人的习惯和能力,用代码解决有两个方式,API函数MoveWindow或者SetWindowPos,这两个函数谈不上孰优孰劣,我个人觉得使用MoveWindow比较对路
函数功能:改变指定窗口的位置和大小.对顶窗口来说,位置和大小取决于屏幕的左上角;对子窗口来说,位置和大小取决于父窗口客户区的左上角.对于Owned窗口,位置和大小取决于屏幕左上角.
函数原型:BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint );
nsis代码中使用system.dll调用MoveWindow方法如下:
GetDlgItem
$0 $HWNDPARENT1046
#获取图片控件句柄
System::Call `user32::MoveWindow(ir0,i0,i0,i500,i60,i1)in`
#修改图片控件位置,
${NSD_SetImage} $0 "$PLUGINSDIR\TEST.bmp"$1
#加载图片
时间: 2024-10-25 00:37:12