????????????CDialog下的CListCtrl的初始化除了在OnInItDialog中外,还可以在哪些地方初始化????????????

dddbug 2002-07-20 05:27:02
我用OnInItDialog初始化,但这样一来用CWnd中的update(windows/data/.....)一类的函数就会调用OnInItDialog更新,那么已经被修改了的数据就又复原了。想用CListCtrl中的update来更新,但不知道update更新的过程(进行更新的语句)应写在那里?(我调用它后,选项中的内容什么都没有更新)。
...全文
155 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2002-07-21
  • 打赏
  • 举报
回复
把你的代码贴出来看看
blade_fj 2002-07-21
  • 打赏
  • 举报
回复
重载OnInItDialog
再用UpateData(FALSE)更改数据
dddbug 2002-07-21
  • 打赏
  • 举报
回复
我想明白了,还是我自己写一个刷新代码的好。
我在数据修改之后,加了setitemtext的语句。就可以了。(想想当时真苯)
谢谢大家赔我迷糊了一天。都有分!!
但我还想知道CListCtrl::update怎么用?
希望能将一下具体怎么用,最好有教学示范的代码。
如果还想要分的话,我还有一帖 {!!??怎样获得线程句柄??!!(是高高手的来!) }似乎没法解决,那么里面的分就发给赔我迷糊的大家啦!
dddbug 2002-07-20
  • 打赏
  • 举报
回复
显示信息在哪提供?
我不知道我用来更新的语句加在哪儿。
我试过直接加入这个函数,根本没反应。
蒋晟 2002-07-20
  • 打赏
  • 举报
回复
CListCtrl::update在你自己提供一个项目的显示信息的时候用于更新指定的列表项
extern int iItem;
//iItem changed
Update(iItem);
dddbug 2002-07-20
  • 打赏
  • 举报
回复
或者说CListCtrl::update怎么用?
dddbug 2002-07-20
  • 打赏
  • 举报
回复
有刷新的函数吗?
CListCtrl::update算不算?
如果算,能告诉我他的代码写在哪儿?
蒋晟 2002-07-20
  • 打赏
  • 举报
回复
1 建立虚列表 虚列表会在需要显示数据的时候发送LVN_GETDISPINFO通知以获取显示信息,你要做的是处理这个通知,并且在需要的时候调用CListCtrl::SetItemCount和CListCtrl::Update
或者
2 自己写函数初始化和更新你的ListCtrl,在需要的时候调用
CListCtrl::Update仅仅通知某一项需要更新。如果你要修改列表文字等等信息,需要自己去直接/间接调用CListCtrl::SetItem等函数。
guopo 2002-07-20
  • 打赏
  • 举报
回复
你的数据应该保存到一个链表或文件中了吧,用个FOR语句每次重新赋值,刷新即可。
dddbug 2002-07-20
  • 打赏
  • 举报
回复
有,CSDN里有。
对不起,问题表示得不太清楚。
我想在更该的与ITEM中显示的内容有关的数据后刷新CLISTCTRL的ITEM;
CSDN里面有CListCtrl::update;但不会用。
至于OnInItDialog,因为每调用一次就能将CLISTCTRL初始化一次,一般来说也可用来刷新,但我现在不能用,因为他会把我所有的数据都改为初始值。
一楼说的自己写也是一种办法,但代码太多比较麻烦。
麻烦大家了。
keenhaung 2002-07-20
  • 打赏
  • 举报
回复
干吗用OnInItDialog刷新?不明白。能不能讲清楚一点
andy_lau 2002-07-20
  • 打赏
  • 举报
回复
最好还是放在initdialog中,我说的是废话
jmcooler 2002-07-20
  • 打赏
  • 举报
回复
楼主的问题有些模糊,没说清楚。
问你,你在什么时候初始化的?是否是在构造函数里?
CListCtrl::update有这个函数吗?
FlyingSch 2002-07-20
  • 打赏
  • 举报
回复
CDialog::OnCreate()
dddbug 2002-07-20
  • 打赏
  • 举报
回复
CListCtrl::update怎么用?
它的代码应写在哪儿?
我现在是已经初始化了,但要刷新,可是用OnInItDialog刷新,OnInItDialog会把CLISTCTRL中的所有数据都改会初始状态,那我对这些数据的修改就全报废了。
所以我想用CListCtrl::update,但不知道它的刷新代码应该写在哪儿?
jmcooler 2002-07-20
  • 打赏
  • 举报
回复
sjzxyg(小小鸟)讲的有道理,处理对话框的WM_CREATE消息,在OnCreate里初始化。
jmcooler 2002-07-20
  • 打赏
  • 举报
回复
注意到,CWnd::UpdateData()函数,不会调用OnInItDialog,而是调用了DoDataExchange()来交换数据(内存变量到窗口控件间的数据交换),对话框上的初始数据可以在CMyDialog构造函数里设置,或者在OnInItDialog里设置,但有区别:
在构造函数里只需要给成员变量赋值,这些值就会显示到对话框窗口上。
在OnInItDialog里如果采用给成员变量赋值,则数据不会显示到对话框上,虽然确实内存里变量已经改变了,但需要调用UpdateData( FALSE );才能反映到窗口上去。
在OnInItDialog里通常不采用给成员变量赋值,而是直接使用控件的一些方法,比如对于CEdit可以调用CEdit:;SetWindowText来改变编辑框之值。
sjzxyg 2002-07-20
  • 打赏
  • 举报
回复
创建窗口时也可初始化
romanticist 2002-07-20
  • 打赏
  • 举报
回复
自己写个函数实现刷新阿
romanticist 2002-07-20
  • 打赏
  • 举报
回复
自己写个函数实现刷新阿

16,548

社区成员

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

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

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