2013-03-18 139 views
1

我想知道当我点击我的nsis对话框的最大化按钮(我已经启用它)时,如何处理事件。 我想每次单击最大化按钮时执行一些其他对话框元素调整大小,并在其最小化时进行恢复。 那么,我该如何实现呢? 请帮忙。 在此先感谢。NSIS:最大化/最小化按钮事件处理

回答

1

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 
+0

可以请你详细阐述一下我应该如何处理它。我真的需要这样做,并且无法在任何地方找到很多信息。谢谢。 – foobar 2013-03-21 10:13:21

+0

你找不到太多的信息,因为你正在尝试做NSIS没有设计的事情...... – Anders 2013-03-22 19:17:01

相关问题