nsis ダイアログの最大化ボタン (既に有効にしています) をクリックしたときのイベントの処理方法を知りたいです。最大化ボタンをクリックするたびに他のダイアログ要素のサイズ変更を実行し、最小化されたときに復元したいと考えています。では、どうすれば達成できますか?助けてください。前もって感謝します。
質問する
512 次
1 に答える
1
NSIS は、サイズ変更可能なダイアログを処理するようには設計されていません。
サイズ イベントをキャッチする唯一の方法は、プラグインを使用することです。独自のカスタム プラグインを作成するか、実験的なWndSubclass プラグインを試すことができます。どちらにしても、これを行うには 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
于 2013-03-18T17:39:02.377 に答える