2013-03-18 45 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

相關問題