关于列表框的LB_GETITEMDATA消息无法获取ItemData的问题

Magic丶旭 2020-05-11 04:49:50
调用SendMessage无法获取ItemData的值,processId在输出窗口中始终是相同的:



初始化的时候是这样设置的,并且能正确获取到processId:

...全文
247 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Magic丶旭 2020-05-12
  • 打赏
  • 举报
回复
问题解决了,原因是我调用GETITEMDATA之后,没有使用processId那个变量,所以这个变量是个随机值。只要在后面任意使用这个变量之后就可以了,如:int a = processId + 1;
Magic丶旭 2020-05-12
  • 打赏
  • 举报
回复
引用 4 楼 蒋晟 的回复:
需要在目标进程内分配可写内存地址才行。你用本进程的内存地址不是制造访问越界么
我这个程序就是一个本地单机程序,没有访问别的进程啊
蒋晟 2020-05-12
  • 打赏
  • 举报
回复
需要在目标进程内分配可写内存地址才行。你用本进程的内存地址不是制造访问越界么
Magic丶旭 2020-05-11
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
先要 有 LB_SETITEMDATA
有啊,在while循环里面的。
schlafenhamster 2020-05-11
  • 打赏
  • 举报
回复
LB_SETITEMDATA
An application sends an LB_SETITEMDATA message to set a 32-bit value associated with the specified item in a list box.

LB_SETITEMDATA
wParam = (WPARAM) index; // item index
lParam = (LPARAM) dwData; // value to associate with item

schlafenhamster 2020-05-11
  • 打赏
  • 举报
回复
先要 有 LB_SETITEMDATA

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧