clistctrl虚列表中使用lParam

smallfishff 2008-04-17 04:47:44
OnGetdispinfo中
pItem->pszText="01";
pItem->lParam=1;//无效

后使用GetItemData读到为0

请问如何设置?
...全文
216 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qicosmos 2009-01-08
  • 打赏
  • 举报
回复
我也遇到了这个问题,该怎么解决啊!
smallfishff 2008-04-18
  • 打赏
  • 举报
回复
是的 方便 以后使用GetItemData()取出此行相关数据.当然用数组可以 但我却想知道如何在虚表中使用lparam
DDGG 2008-04-18
  • 打赏
  • 举报
回复
你是想在OnGetdispinfo里在表格项的数据里作个标记,传递到外面去吗?
smallfishff 2008-04-18
  • 打赏
  • 举报
回复
在OnGetdispinfo中添加行 设置了显示文本 然后要再设置关联值lParam保存一些DWORD数据
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
LV_ITEM* pItem= &(pDispInfo)->item;

if(pItem->mask & LVIF_TEXT|LVIF_PARAM)
{

switch(pItem->iSubItem)
{
case 0:

pItem->pszText="01";
pItem->lParam=1;//无效


}
}




*pResult = 0;
}
scq2099yt 2008-04-18
  • 打赏
  • 举报
回复
up
shakaqrj 2008-04-18
  • 打赏
  • 举报
回复
你在OnGetdispinfo中要做什么?
能不能全一些代码
smallfishff 2008-04-18
  • 打赏
  • 举报
回复
再问
DDGG 2008-04-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 smallfishff 的回复:]
是的 方便 以后使用GetItemData()取出此行相关数据.当然用数组可以 但我却想知道如何在虚表中使用lparam
[/Quote]

既然是虚拟方式使用列表,那么pItem(归根结底是从参数pNMHDR取得的)所指向的结构可能是临时的,在OnGetdispinfo外的什么地方释放,每次进OnGetdispinfo前重新构造并初始化。因此pItem的值只能在函数OnGetdispinfo的范围内保证有效。

你可以在外面用传递pItem->lParam传递一个指针,然后在OnGetdispinfo里修改这个指针所指向的数据,这样也可以达到在OnGetdispinfo里修改外部数据的目的。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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