SendMessage lParam 为空

发布于 2024-09-18 16:04:34 字数 575 浏览 4 评论 0原文

我试图在 LV_ITEM 的 lParam 中存储一个值:

;...
mov eax, value
mov lvi.lParam, eax
invoke SendMessage, hList, LVM_INSERTITEM, 0 addr lvi

lvi 是一个(本地)LV_ITEM,hList 是我的 ListView 控件的句柄。如果现在单击该项目,我会尝试读取它的值:

invoke SendMessage,hList,LVM_GETNEXTITEM,-1,LVNI_FOCUSED
mov lvi.iItem, eax
mov lvi.iSubItem, 0
mov lvi.imask, LVIF_TEXT
mov lvi.cchTextMax,256
invoke SendMessage,hList,LVM_GETITEM, 0, addr lvi

lvi 再次是一个(本地)LV_ITEM,hList 是 ListView 的句柄。 现在我可以读取 pszText (lvi.pszText),但 lParam 始终为零。最后一个错误也返回零。

任何帮助表示赞赏

I am trying to store a value in the lParam of a LV_ITEM:

;...
mov eax, value
mov lvi.lParam, eax
invoke SendMessage, hList, LVM_INSERTITEM, 0 addr lvi

lvi is a (LOCAL) LV_ITEM, and hList is the handle of my ListView Control. If this item is now clicked, i try to read it's value:

invoke SendMessage,hList,LVM_GETNEXTITEM,-1,LVNI_FOCUSED
mov lvi.iItem, eax
mov lvi.iSubItem, 0
mov lvi.imask, LVIF_TEXT
mov lvi.cchTextMax,256
invoke SendMessage,hList,LVM_GETITEM, 0, addr lvi

Again lvi is a (LOCAL) LV_ITEM, and hList the handle of the ListView.
Now I can read e.g. the pszText (lvi.pszText), but the lParam is always zero. Last Error also returns zero.

Any help is appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

李不 2024-09-25 16:04:34

您是否将LV_ITEM的iMask设置为LVIF_TEXT+LVIF_PARAM?如果不是,则忽略LV_ITEM结构中的lParam。

;...
mov lvi.iMask, LVIF_TEXT+LVIF_PARAM
push value
pop lvi.lParam
invoke SendMessage, hList, LVM_INSERTITEM, 0 addr lvi

您还需要以相同的方式请求它:

invoke SendMessage,hList,LVM_GETNEXTITEM,-1,LVNI_FOCUSED
mov lvi.iItem, eax
mov lvi.iSubItem, 0
mov lvi.imask, LVIF_TEXT+LVIF_PARAM
mov lvi.cchTextMax,256
invoke SendMessage,hList,LVM_GETITEM, 0, addr lvi 

Did you set the iMask of the LV_ITEM to LVIF_TEXT+LVIF_PARAM? If not, the lParam in the LV_ITEM structure is ignored.

;...
mov lvi.iMask, LVIF_TEXT+LVIF_PARAM
push value
pop lvi.lParam
invoke SendMessage, hList, LVM_INSERTITEM, 0 addr lvi

You will also need to request it in the same way:

invoke SendMessage,hList,LVM_GETNEXTITEM,-1,LVNI_FOCUSED
mov lvi.iItem, eax
mov lvi.iSubItem, 0
mov lvi.imask, LVIF_TEXT+LVIF_PARAM
mov lvi.cchTextMax,256
invoke SendMessage,hList,LVM_GETITEM, 0, addr lvi 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文