vc++如何这一个类里面修改另一个类里面的列表控件的值
使用vc++MFC,在窗口类CXDlg里面定义了窗口类CYDlg的对象m_y和窗口类CZDlg的对象m_z,在窗口CZDlg里面有一个列表控件ID为IDC_ASS_LIS...
使用vc++MFC,在窗口类CXDlg里面定义了窗口类CYDlg的对象m_y和窗口类CZDlg的对象m_z,在窗口CZDlg里面有一个列表控件ID为IDC_ASS_LIST,关联的变量为m_listcontrl,在类CYDlg双击列表框事件CYDlg::OnDblclkList1里面定义了变量m_ed,希望在事件CYDlg::OnDblclkList1里面写一句代码,使列表IDC_ASS_LIST的第2个item的第3个subitem项的值等于m_ed.
直接写m_listcontrl.SetItemText(2,3,m_ed); 提示错误"m_listcontrl": undeclared identifier,left of '.SetItemText' must have class/struct/union type.
如果这句程序改成((CListCtrl*)GetDlgItem(IDC_ASS_LIST))->SetItemText(2,3,m_ed);的话,编译链接正常,运行后出错,该内存不能为read。去掉这句话后能正常运行,实现不了我的要求:使列表IDC_ASS_LIST的第2个item的第3个subitem项的值等于m_ed。 展开
直接写m_listcontrl.SetItemText(2,3,m_ed); 提示错误"m_listcontrl": undeclared identifier,left of '.SetItemText' must have class/struct/union type.
如果这句程序改成((CListCtrl*)GetDlgItem(IDC_ASS_LIST))->SetItemText(2,3,m_ed);的话,编译链接正常,运行后出错,该内存不能为read。去掉这句话后能正常运行,实现不了我的要求:使列表IDC_ASS_LIST的第2个item的第3个subitem项的值等于m_ed。 展开
3个回答
展开全部
朋友,电脑出现:内存不能为read,原因总结起来,有以下方面,偶尔出现,点:取消,即可!
(答案原创,本答案原作者:力王历史)
1.电脑中了木马或者有病毒在干扰!
试试:杀毒软件,360安全卫士+360杀毒双引擎版,或者金山卫士+金山毒霸,
建议:修复“高危”和“重要”漏洞!使用“木马云查杀”和“360杀毒”,
“全盘扫描”和“自定义扫描”病毒和木马,删除后,重启电脑!
开机后,点开“隔离|恢复”,找到木马和病毒,彻底删除!
2.如果第1种方法不行,下载个“360系统急救箱”,或者“金山系统急救
箱”!
先“全盘查杀”,查杀完毕,删除“可疑自启动项”和木马,再重启电脑!
然后点开“隔离|恢复”区,找到“可疑自启动项”和木马,点“彻底删除”!
再点开“修复”,“全选”,再点“修复”!
3.用“360安全卫士”,“系统修复”,一键修复!再:“清理插件”,立即扫描,立即清理:恶评插件!
4.你下载的“播放器”,或“聊天软件”,或“IE浏览器”,或者“驱动”,或
“游戏”的程序不稳定,或者“版本太旧”!建议卸掉,下载新的,或将其升级
为“最新版本”!
5.软件冲突,你安装了两款或两款以上的同类软件(如:两款播放器,两款
qq,或多款浏览器,多款杀毒软件,多款网游等等)!它们在一起不“兼容”,
卸掉“多余”的那一款!
6.卸载方法:你在电脑左下角“开始”菜单里找到“强力卸载电脑上的软件”,找到多余的那款卸掉! 卸完了再“强力清扫”!
或者“360安全卫士”,“软件管家”,点开,第4项:“软件卸载”,点开,找
到“多余”和“类似”的软件卸载!如:“播放器”,点开,留下“暴风”,卸载“快播”!如:“下载”:点开,留下“迅雷”,卸载“快车”!(看准了再卸,别把有用的卸了)
7.如果还是不行,去网上下载一个“read修复工具”,修复试试!
8.再不行,重启电脑,开机后按“F8”,回车,回车,进到“安全模式”里,“高级启动选项”,找到:“最后一次正确配置”,按下去试试,看看效果如何!
9.再不行,开始菜单,运行 ,输入cmd, 回车,在命令提示符下输入(复制即可) :
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
粘贴,回车,直到屏幕滚动停止为止,重启电脑!
10.实在不行就“一键还原”系统或“重装系统”!
(答案原创,本答案原作者:力王历史)
1.电脑中了木马或者有病毒在干扰!
试试:杀毒软件,360安全卫士+360杀毒双引擎版,或者金山卫士+金山毒霸,
建议:修复“高危”和“重要”漏洞!使用“木马云查杀”和“360杀毒”,
“全盘扫描”和“自定义扫描”病毒和木马,删除后,重启电脑!
开机后,点开“隔离|恢复”,找到木马和病毒,彻底删除!
2.如果第1种方法不行,下载个“360系统急救箱”,或者“金山系统急救
箱”!
先“全盘查杀”,查杀完毕,删除“可疑自启动项”和木马,再重启电脑!
然后点开“隔离|恢复”区,找到“可疑自启动项”和木马,点“彻底删除”!
再点开“修复”,“全选”,再点“修复”!
3.用“360安全卫士”,“系统修复”,一键修复!再:“清理插件”,立即扫描,立即清理:恶评插件!
4.你下载的“播放器”,或“聊天软件”,或“IE浏览器”,或者“驱动”,或
“游戏”的程序不稳定,或者“版本太旧”!建议卸掉,下载新的,或将其升级
为“最新版本”!
5.软件冲突,你安装了两款或两款以上的同类软件(如:两款播放器,两款
qq,或多款浏览器,多款杀毒软件,多款网游等等)!它们在一起不“兼容”,
卸掉“多余”的那一款!
6.卸载方法:你在电脑左下角“开始”菜单里找到“强力卸载电脑上的软件”,找到多余的那款卸掉! 卸完了再“强力清扫”!
或者“360安全卫士”,“软件管家”,点开,第4项:“软件卸载”,点开,找
到“多余”和“类似”的软件卸载!如:“播放器”,点开,留下“暴风”,卸载“快播”!如:“下载”:点开,留下“迅雷”,卸载“快车”!(看准了再卸,别把有用的卸了)
7.如果还是不行,去网上下载一个“read修复工具”,修复试试!
8.再不行,重启电脑,开机后按“F8”,回车,回车,进到“安全模式”里,“高级启动选项”,找到:“最后一次正确配置”,按下去试试,看看效果如何!
9.再不行,开始菜单,运行 ,输入cmd, 回车,在命令提示符下输入(复制即可) :
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
粘贴,回车,直到屏幕滚动停止为止,重启电脑!
10.实在不行就“一键还原”系统或“重装系统”!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-08-09
展开全部
一个比较笨的方法
类CYDlg 增加定义:
CXDlg * parent;
定义一个函数
void CYDlg::InitDialog(CXDlg *pParent)
{
parent=pParent;//父窗口指针存放
}
注意在CXDlg内调用m_y时,先执行
m_y.InitDialog(this);
再执行
m_y.DoModal() ;
然后在
CYDlg::OnDblclkList1
执行
parent->m_z.m_listcontrl.SetItemText(item,3,m_ed);即可
item 为第2个item值。
类CYDlg 增加定义:
CXDlg * parent;
定义一个函数
void CYDlg::InitDialog(CXDlg *pParent)
{
parent=pParent;//父窗口指针存放
}
注意在CXDlg内调用m_y时,先执行
m_y.InitDialog(this);
再执行
m_y.DoModal() ;
然后在
CYDlg::OnDblclkList1
执行
parent->m_z.m_listcontrl.SetItemText(item,3,m_ed);即可
item 为第2个item值。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
m_listcontrl.SetItemText(2,3,m_ed);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询