0
我知道这已被问及之前,发现他们说不,但最近发布的帖子是从2014年,所以我想我会检查是否有任何新功能我我错过了。NSIS消息框自定义按钮
有没有办法将消息框按钮更改为自定义文本?所以,而不是YesNoCancel
我可以使用UninstallReinstallCancel
。
有几个消息框我需要有这种能力。
如果该选项是写一些自定义插件,有人可以为我做这件事会在我的头上?
我知道这已被问及之前,发现他们说不,但最近发布的帖子是从2014年,所以我想我会检查是否有任何新功能我我错过了。NSIS消息框自定义按钮
有没有办法将消息框按钮更改为自定义文本?所以,而不是YesNoCancel
我可以使用UninstallReinstallCancel
。
有几个消息框我需要有这种能力。
如果该选项是写一些自定义插件,有人可以为我做这件事会在我的头上?
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