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