2017-10-14 3 views
0

이전에 질문을 받았으며 몇 가지 게시물을 발견했습니다.하지만 가장 최근에 본 게시물은 2014 년 이었기 때문에 새로운 기능이 있는지 확인합니다. 실종됐다.NSIS 메시지 상자 사용자 정의 버튼

메시지 상자 단추를 사용자 지정 텍스트로 변경하는 방법이 있습니까? 따라서 YesNoCancel 대신 UninstallReinstallCancel을 사용할 수 있습니다.

이 기능이 필요한 메시지 상자가 여러 개 있습니다.

옵션이 일부 맞춤 플러그인을 작성하는 경우 다른 사람이 내 머리 위로이 작업을 수행 할 수 있습니까?

답변

1

NSIS는 MessageBox Windows 기능을 사용하기 때문에 버튼 텍스트를 설정할 수 없습니다.

가장 좋은 옵션은 맞춤 플러그인이 될 것입니다.하지만 당신이 멋지게 질문하기 때문에 누구나 기꺼이 글을 쓸 의향이 있습니다. 아마도 작은 비용으로 누군가 그것을 기꺼이 수행 할 의사가 있는지 NSIS 포럼에 질문 할 수 있습니다. 당신의 DlgHost plug-in를 사용할 수있는 해결 방법으로

내장 된 자신 만의 디자인으로 중첩 된 대화 상자를 만드는 페이지 :

!include nsDialogs.nsh 
!include DlgHost.nsh 

Page InstFiles 

Function CloseDlgHostDialog 
Pop $0 
DlgHost::Close 
FunctionEnd 

Function DoSomethingElse 
Pop $0 
MessageBox mb_ok "Hello" 
FunctionEnd 

Function MyDlgBoxCallback 
${Select} $0 
${Case} ${DLGHOST_DLGBOXMSG_INITDLG} 
    nsDialogs::Create 1018 
    Pop $1 
    DlgHost::SetClient $1 

    ${NSD_CreateLabel} 25% 20% 45% 15u "Hello from nsDialogs..." 
    Pop $1 
    ${NSD_CreateButton} 10u 60% 50u 15u "&Close" 
    Pop $1 
    ${NSD_OnClick} $1 CloseDlgHostDialog 

    ${NSD_CreateButton} 70u 60% 80u 15u "&Do something else" 
    Pop $1 
    ${NSD_OnClick} $1 DoSomethingElse 

${Case} ${DLGHOST_DLGBOXMSG_SHOWDLG} 
    nsDialogs::Show 
${EndSelect} 
FunctionEnd 

Function ShowNSDChildDlg 
GetFunctionAddress $0 MyDlgBoxCallback 
DlgHost::DlgBox "* $0 p 200u 120u Test Dialog" 
FunctionEnd 

Section 
Call ShowNSDChildDlg 
SectionEnd