[英]ListView_GetItem() macro & LV_GETITEMTEXT returns empty STRING while getting another APP listview items
[英]NSIS ListView - GetItemText returns wrong value
我嘗試使用ListView創建Windows安裝程序。 我可以將項目插入列表視圖:
# put the plugin version to list view (in my case value 2.2)
${NSD_LV_InsertItem} $list $i '$5'
但是,當我嘗試從給定索引中讀取值時:
# get selected item plugin version
${NSD_LV_GetItemText} $list 0 0 $R0
MessageBox MB_OK "The text of item 0 is: $R0"
我收到消息:項目0的文本為:▯2
為什么輸出顯示不正確?
謝謝!
“▯2”是視為UTF-16LE字符串的“ 2.2” ASCII字符串。
第三方CommCtrl.nsh文件有錯誤,您需要確保LVM_ *定義對於您的目標是正確的。
!include nsDialogs.nsh
!include WinMessages.nsh ; The 3rd-party CommCtrl.nsh file is buggy, include this first to make sure LVM_* is defined correctly
!ifndef LVM_GETITEMTEXT
!define /math LVM_GETITEMTEXTA ${LVM_FIRST} + 45
!define /math LVM_GETITEMTEXTW ${LVM_FIRST} + 115
${_NSIS_DEFAW} LVM_GETITEMTEXT
!endif
!include "CommCtrl.nsh"
!define /ifndef _COMMCTRL_NSH_VERBOSE ${_COMMCTRL_VERBOSE}
Page Custom MyPage
Var /Global List
Var /Global i
Function MyPage
nsDialogs::Create 1018
Pop $0
${NSD_CreateListView} 0u 0u 300u 50% "Listview"
Pop $list
StrCpy $i 0
StrCpy $5 "2.2"
${NSD_LV_InsertColumn} $list 0 200 "column 0"
${NSD_LV_InsertItem} $list $i '$5'
${NSD_CreateButton} 0 60% 100% 13u "MsgBox item 0"
Pop $0
${NSD_OnClick} $0 DisplayItem0
nsDialogs::Show
FunctionEnd
Function DisplayItem0
Pop $R0
${NSD_LV_GetItemText} $list 0 0 $R0
MessageBox MB_OK "The text of item 0 is: $R0"
FunctionEnd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.