2014-02-07 31 views
0

我已經寫了一個自定義頁面,我想在飛行中更改標籤文本。我嘗試了下面的代碼,但是一些我無法打包來更改文本。如何在nsis中即時更改自定義頁面標籤文本?

Function Maintainance 
    nsDialogs::Create 1018 
     Pop $Dialog 
     ${If} $Dialog == error 
      Abort 
     ${EndIf} 


     ${NSD_CreateLabel} 0 0 100% 12u "The $CurrentVersion complete installation folder is available at the below link" 
     Pop $Label 
    FindWindow $0 "#32770" "" $HWNDPARENT 
    GetDlgItem $1 $0 1006 


    SendMessage $1 ${WM_SETTEXT} 0 "STR:new value 111111" 
    nsDialogs::Show 
FunctionEnd 

對此的任何指針將是一個幫助。

+0

你已經在$標籤,這樣你爲什麼叫函數GetDlgItem有未知ID的手柄? – Anders

回答

0

自定義頁面在您調用nsDialogs :: Show之前不可見。任何動力作用具有之後發生的計時器或以響應用戶操作:

Page Custom MyPageCreate 
Page InstFiles 

!include nsDialogs.nsh 

var mylabel 

Function MyPageCreate 
nsDialogs::Create 1018 
Pop $0 
${NSD_CreateLabel} 0 0 100% 12u "Hello" 
Pop $mylabel 
${NSD_CreateButton} 0 50% 50% 12u "Change" 
Pop $0 
${NSD_OnClick} $0 ChangeIt 
nsDialogs::Show 
FunctionEnd 

Function ChangeIt 
System::Call kernel32::GetTickCount()i.r0 
SendMessage $mylabel ${WM_SETTEXT} 0 "STR:World! $0" 
FunctionEnd 
相關問題