我正在嘗試使用 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”。我使用新示例更新了此頁面中的所有內容。
uj5u.com熱心網友回復:
- 您在 nsDialogs::Create 之后缺少一個 Pop。
- 沒有px后綴。
- 創建控制元件時缺少最后一個引數。
RequestExecutionLevel User
!include nsDialogs.nsh
Page Custom FirstCreate
Function .onGUIInit
InitPluginsDir
File /oname=$PLUGINSDIR\1.ico "${NSISDIR}\Contrib\Graphics\Icons\llama-blue.ico"
File /oname=$PLUGINSDIR\2.ico "${NSISDIR}\Contrib\Graphics\Icons\llama-grey.ico"
File /oname=$PLUGINSDIR\3.ico "${NSISDIR}\Contrib\Graphics\Icons\nsis1-install.ico"
File /oname=$PLUGINSDIR\4.ico "${NSISDIR}\Contrib\Graphics\Icons\nsis1-uninstall.ico"
FunctionEnd
Function FirstCreate
nsDialogs::Create 1018
Pop $0
${NSD_CreateIcon} 8u 12u 32 32 ""
Pop $1
${NSD_SetIcon} $1 "$PLUGINSDIR\1.ico" $R1
${NSD_CreateIcon} 8u 47u 32 32 ""
Pop $2
${NSD_SetIcon} $2 "$PLUGINSDIR\2.ico" $R2
${NSD_CreateIcon} 8u 60u 32 32 ""
Pop $3
${NSD_SetIcon} $3 "$PLUGINSDIR\3.ico" $R3
${NSD_CreateIcon} 8u 84u 32 32 ""
Pop $4
${NSD_SetIcon} $4 "$PLUGINSDIR\4.ico" $R4
nsDialogs::Show
${NSD_FreeIcon} $R1
${NSD_FreeIcon} $R2
${NSD_FreeIcon} $R3
${NSD_FreeIcon} $R4
FunctionEnd
Section
SectionEnd
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387996.html
上一篇:如何錨定文本并將其縮小以適合影像
