VC关于子窗口中的LIST控件在主窗口中调用问题!加分++

 我来答
实攸栗燕
2019-02-11 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:732万
展开全部
list
的初始化有问题的,
你在dlg1中做个公共接口,
int
Initlist(param1,param2);
你在key中调用Dlg1.Initlist()进行初始化,再显示对话框,这个方案不是很简单。。
看来你经验不够呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钮亦玉银茂
2019-10-19 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:30%
帮助的人:542万
展开全部
1.我敢肯定你的DoDataExchange里肯定没有ListCtrl数据交换.
也就是说你的ListCtrl
窗口根本就没有出来.
2.你只要把ListCtrl删除,重新添加上去试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
以辰良况树
2020-03-08 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:780万
展开全部
1.假设你的窗口是模态窗口
你的方法有很大问题
按下KEY,显示对话框
那么主线程就执行到子对话框中的代码
你的所谓"KEY回调函数"被阻塞
对话框终止后
"KEY回调函数"才恢复执行
那个时候对话框都没有了
做什么也没效果了
在"KEY回调函数"内子对话框窗口类中的个变量还是有效的
但是子对话框中的子控件"List"已经销毁了
解决办法:
在子对话框的OnInitDialog函数中初始化你的List
而非在"KEY回调函数"中
2.如果是非模态对话框
那么"KEY回调函数"不会阻塞
你可以设置List内容
但是必须经过动态创建对话框类的实例并且调用Create创建对话框
如果这些没有做
那么仍旧是访问异常
3.DoDataExchange用于控件和某数据成员间建立一种隐射关系
不应该将它作为初始化函数使用
初始化一般数据可以使用构造函数
初始化子窗口可以使用OnInitDialog
4.关于ListCtrl
Dlg1.m_List.InsertItem(0,"行");//插入行
Dlg1.m_List.SetItemText(0,1,"列");//插入列
在SetItemText之前
请使用InsertColumn函数插入一列
不然你想插入的那一列根本不存在
或许也是一个访问异常的原因
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
豆玟丽似菁
2019-12-18 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:34%
帮助的人:887万
展开全部
1.假设你的窗口是模态窗口
你的方法有很大问题
按下KEY,显示对话框
那么
主线程
就执行到子对话框中的代码
你的所谓"KEY
回调函数
"被阻塞
等子对话框终止后
"KEY回调函数"才恢复执行
那个时候对话框都没有了
做什么也没有效果了
在"KEY回调函数"内子对话框窗口类中的个变量还是有效的
但是子对话框中的子控件"List"已经销毁了
解决办法:
在子对话框的
OnInitDialog
函数中初始化你的List
而非在"KEY回调函数"中
2.如果是非
模态对话框
那么"KEY回调函数"不会阻塞
你可以设置List内容
但是必须经过动态创建对话框类的实例并且调用Create创建对话框
如果这些没有做
那么仍旧是访问异常
3.DoDataExchange用于控件和某数据成员间建立一种隐射关系
不应该将它作为初始化函数使用
初始化一般数据可以使用
构造函数
初始化子窗口可以使用OnInitDialog
4.关于ListCtrl
Dlg1.m_List.
InsertItem
(0,"行");//插入行
Dlg1.m_List.SetItemText(0,1,"列");//插入列
在SetItemText之前
请务必使用InsertColumn函数插入一列
不然你想插入的那一列根本不存在
或许也是一个访问异常的原因(我不确定会否异常,但这样做是不对的)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式