我正在尝试使用 nsDialogs 将各种图像(作为图标)放在单个自定义页面中。
我提供的这个例子就是这样做的,但它只显示了第一张图片。但是如果我评论/删除第一张图片的代码,显示第二张,如果我对第二张做同样的事情,它会显示第三张,依此类推。
屏幕截图:提供代码的自定义页面:当设置四个具有相同代码时,仅显示一个图标。
对我来说,我错过了一些东西,但我已经搜索了一个使用 NSD_CreateIcon/NSD_SetIcon 来帮助解决这个问题的例子。我也尝试使用 NSD_CreateBitmap/NSD_SetBitmap 代替,但我有同样的问题(我希望图标更好,因为它们具有透明度)。
这是代码:
Name "Example NSD Icon Test"
Outfile "ExampleNSDiconsTest.exe"
RequestExecutionLevel user
Unicode True
XPStyle on
!include nsDialogs.nsh
!include LogicLib.nsh
Page Custom FirstCreate
Page Custom SecondCreate
Page instfiles
Function .onGuiInit
InitPluginsDir
File /oname=$PLUGINSDIR\1.ico "1.ico"
File /oname=$PLUGINSDIR\2.ico "2.ico"
File /oname=$PLUGINSDIR\3.ico "3.ico"
File /oname=$PLUGINSDIR\4.ico "4.ico"
FunctionEnd
Function FirstCreate
nsDialogs::Create 1018
${NSD_CreateIcon} 8u 12u 32px 32px
Pop $1
${NSD_SetIcon} $1 "$PLUGINSDIR\1.ico" $R1
${NSD_CreateIcon} 8u 47u 32px 32px
Pop $2
${NSD_SetIcon} $2 "$PLUGINSDIR\2.ico" $R2
${NSD_CreateIcon} 8u 60u 32px 32px
Pop $3
${NSD_SetIcon} $3 "$PLUGINSDIR\3.ico" $R3
${NSD_CreateIcon} 8u 84u 32px 32px
Pop $4
${NSD_SetIcon} $4 "$PLUGINSDIR\4.ico" $R4
nsDialogs::Show
FunctionEnd
Function SecondCreate
nsDialogs::Create 1018
nsDialogs::Show
FunctionEnd
Section
SectionEnd
带有图标和示例的完整包可以在这里下载(更新)
谢谢!
编辑:
做更多测试,我发现如果我在第一个页面之后使用nsDialogs创建第二个自定义页面,完全为空,第一页只显示“1”,你可以转到第二页,回到第一页,然后它显示“1”和“2”。我用新示例更新了此页面中的所有内容。