ListView界面更新

vcstar80 2004-07-13 12:55:17
程序是一个单文档分割窗体:

------------------------------
| | | |
| | | 3 |
| 1 | 2 |----------------|
| | | |
| | | 4 |
| | | |
|-----------------------------

窗体4是一个CListView ,我有一个全局回调函数,里面会得到一些信息,这些信息要在
4中显示出来.得到数据后,首先我在着个全局回调函数中如下得到4窗的指针并调用4
窗体类的一个用来更新4界面列表的函数UpdateReceiveList:

((CReceiveView*)AfxGetMainWnd())->UpdateReceiveList();


UpdateReceiveList()函数内容如下:

//界面更新
CListCtrl& ListCtrl = GetListCtrl();
int nItem = ListCtrl.InsertItem(0xffff,(_bstr_t)"123");
ListCtrl.SetItem(nItem,1,1,(_bstr_t)"接收测试",NULL,0,0,0);
ListCtrl.SetItem(nItem,2,1,(_bstr_t)"2004-07-07",NULL,0,0,0);
ListCtrl.SetItem(nItem,3,1,(_bstr_t)"成功接收",NULL,0,0,0);

注:上面的插入内容在实际使用时是来自全局回调函数,通过参数传给UpdateReceiveList()
这里忽略掉暂时.

这样做,单步跟踪,程序不会异常出错,也可以正确得到4窗的指针和ListCtrl的指针,
但就是界面内容不会更新. 所以我想改成SendMessage实验一下.

另:得到4 窗的指针,我还用过
CReceiveView *pView = (CReceiveView *)(((CMainFrame *)AfxGetMainWnd())->m_wndSplitter1.GetPane(1,0));

用这种方法,如果代码写在MainFrame中可以得到,但是用在全局回调函数中程序执行
到这里就会异常崩溃

希望能得到大虾的帮助.thx
我所希望的就是将全局回调函数中内容在4窗列表中显示出来.
...全文
159 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcstar80 2004-07-13
  • 打赏
  • 举报
回复
实验了,不行. 单步跟踪界面也没有更新的.
不知道是不是在全局函数中得到的指针有问题.
FlyNesta 2004-07-13
  • 打赏
  • 举报
回复
Invalidate一下那个listview试试。你单步跟能成功就是因为在不断的invalidate
sodangerous 2004-07-13
  • 打赏
  • 举报
回复
1> 插入位置是否正确
2〉用UpdateAllViews更新
vcstar80 2004-07-13
  • 打赏
  • 举报
回复
up
vcstar80 2004-07-13
  • 打赏
  • 举报
回复
用ListCtrl.InsertItem 没有更新
needways 2004-07-13
  • 打赏
  • 举报
回复
ListCtrl.InsertItem 是否成功了啊。
用 0xffff 作为 index 我没试过。
_bstr_t 没必要要吧。

16,472

社区成员

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

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

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