我放置了 MUI_PAGE_COMPONENTS 表单。 接下来,对于安装程序,我将分辨率设置为 1280 x 720。
!define WIDTH 1280
!define HEIGHT 720
Function .onGUIInit
GetDlgItem $0 $HWNDPARENT 1000
System::Call 'user32::MoveWindow(i $HWNDPARENT, i 0, i 0, i ${WIDTH}, i ${HEIGHT}, i 1)' MoveWindow(i $0, i 0, i 0, i ${WIDTH}, i ${HEIGHT}, i 1)'
FunctionEnd
但是所有的 UI 元素都位于左上角。 是否可以将表单(UI 元素)居中并拉伸到窗口的整个大小? 如果没有的话,如何拉伸组件框和描述框?
我进行了搜索,但从未找到简单的解决方案。操纵现成表单的元素真的不可能吗?
这是可能的,并且您实际上发布了正确的解决方案:A您需要的是单独移动/调整控件的大小。**
例如“下一步”按钮:
GetDlgItem $0 $HWNDPARENT 1 ; Get the handle to button
System::Call 'user32::MoveWindow(i $HWNDPARENT, i <param> , i <param> , i <param> i <param> i 1)' MoveWindow(i $0, i <param> , i <param> , i <param> , i <param>, i 1)'
有办法批量移动所有控件(Windows API 不支持),因此迭代您想要移动/调整大小的所有控件,获取它们的句柄(请参阅 NSIS 文档)并使用适当的参数调用 MoveWindow Win API 函数:
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-movewindow