2016-04-15 10 views

答えて

1

nsDialogsはこのイベントをサポートしていませんが、通常はOnChangeイベントを使用してUIの他の部分を更新します。

あなたは絶対にこれをしなければならない場合は、タイマーを使用することができます

!include LogicLib.nsh 
!include nsDialogs.nsh 
Page Custom MyPageCreate 
Page InstFiles 

Var MyEdit 
Var LastFocus 

Function MyEditLostFocus 
System::Call KERNEL32::GetTickCount()i.r0 
SendMessage $9 ${WM_SETTEXT} 0 "STR:MyEditLostFocus, tick=$0" 
FunctionEnd 

Function DetectFocusTimerHack 
System::Call 'USER32::GetFocus()i.r0' 
${If} $0 <> $MyEdit 
${AndIf} $LastFocus = $MyEdit 
    Push $0 
    Call MyEditLostFocus 
    Pop $0 
${EndIf} 
StrCpy $LastFocus $0 
FunctionEnd 

Function MyPageCreate 
nsDialogs::Create 1018 
Pop $0 

${NSD_CreateText} 0 30u 100% 20u "Hello" 
Pop $MyEdit 

${NSD_CreateText} 0 60u 100% 20u "World" 
Pop $9 

${NSD_CreateTimer} DetectFocusTimerHack 333 
nsDialogs::Show 
FunctionEnd 
関連する問題