1
我想知道当我点击我的nsis对话框的最大化按钮(我已经启用它)时,如何处理事件。 我想每次单击最大化按钮时执行一些其他对话框元素调整大小,并在其最小化时进行恢复。 那么,我该如何实现呢? 请帮忙。 在此先感谢。NSIS:最大化/最小化按钮事件处理
我想知道当我点击我的nsis对话框的最大化按钮(我已经启用它)时,如何处理事件。 我想每次单击最大化按钮时执行一些其他对话框元素调整大小,并在其最小化时进行恢复。 那么,我该如何实现呢? 请帮忙。 在此先感谢。NSIS:最大化/最小化按钮事件处理
NSIS实际上并没有设计用于处理可重定义的对话框。
捕捉大小事件的唯一方法是使用插件。你可以写自己的自定义插件或尝试实验WndSubclass plugin,无论哪种方式,你很需要知道一点关于Windows API来做到这一点...
编辑:
!include nsDialogs.nsh
!include WinCore.nsh
!include WndSubclass.nsh
!macro _Win_HIWORD_FIXED _outvar _in
IntOp ${_outvar} "${_in}" >> 16 ;sign extended
${LOWORD} ${_outvar} ${_outvar} ;make sure we strip off the upper word
!macroend
!undef HIWORD
!define HIWORD "!insertmacro _Win_HIWORD_FIXED "
Var ParentSubProc
Function ParentSubProc
${If} $2 = ${WM_SIZE}
${LOWORD} $1 $4
${HIWORD} $2 $4
${NSD_SetText} $hwndparent "Size: $1 x $2"
${EndIf}
FunctionEnd
Function .onGuiInit
${NSD_AddStyle} $hwndparent 0x70000
${WndSubclass_Subclass} $hwndparent ParentSubProc $ParentSubProc $ParentSubProc
FunctionEnd
可以请你详细阐述一下我应该如何处理它。我真的需要这样做,并且无法在任何地方找到很多信息。谢谢。 – foobar 2013-03-21 10:13:21
你找不到太多的信息,因为你正在尝试做NSIS没有设计的事情...... – Anders 2013-03-22 19:17:01