在文档类中调用对话框类中的DataGrid控件的变量出错

stone-code 2004-03-16 02:41:57
1.(1)对话框类CMyDlg中加入DataGrid控件(用ADODC绑定);
(2)用ClassWizard生成DataGrid控件变量
CDataGrid m_ctlDataGrid;
(3)在CMyDlg类中声明函数
pubilc:
void CMyDlg::UpdateDB(void);
函数实现如下:
void CMyDlg::UpdateDB(void)
{
m_ctlDataGrid.SetDataChanged(TRUE);
AfxMessageBox("Call UpdateDB");

return;
}
...全文
30 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
stone-code 2004-03-17
  • 打赏
  • 举报
回复
多谢happyparrot.我明白你的意思了.我现在改为在对话框上加按钮对DataGrid控件

进行控制!

有个问题向你请教:
1.DataGrid控件在属性表(PropertySheet)的一个属性页上.
2.我发现这个软件,它在改属性页上DataGrid的数据后,先不存盘,
3.然后在执行一个菜单命令时(此菜单命令代码应该不可能在属性页的那个类里),却可以对DataGrid的数据进行存盘.
3.它是采用什么办法实现的呢?
快乐鹦鹉 2004-03-16
  • 打赏
  • 举报
回复
都是不行的。我的意思是,你随便定义一个变量接收就行,干吗非得是DataGrid的Value变量呢?
发送消息也好,怎么也好,在对话框没有显示之前,你对控件的操作都是徒劳的。
stone-code 2004-03-16
  • 打赏
  • 举报
回复
To happyparrot:
1.我在ClassWizard中查看,DataGrid只有control变量,不能创建Value变量.
2.我是想在界面中,执行一个菜单命令的时候,让DataGrid执行一个SetDataChanged()
函数.我发送一个自定义消息试一下.
快乐鹦鹉 2004-03-16
  • 打赏
  • 举报
回复
对话框中的控件变量在对话框外是不能进行调用的!很多网友犯这种错误。在定义对话框实例后,对话框上的控件并没有真正创建起来。你可以看一下控件的句柄,应该是0x00000000吧。不要想着这样做。你可以在对话框中定义一个值变量,来接收你要传给DataGrid的值,然后在对话框初始化的时候,将这个值赋给DataGrid就可以了。
stone-code 2004-03-16
  • 打赏
  • 举报
回复
2.在文档类CMyDoc中用菜单命令的消息处理函数调用如下:
void CJiFeiV10Doc::OnFileCard()
{
// TODO: Add your command handler code here

CPropPage2 propPage2;

propPage2.UpdateDB();

//propPage2.m_ctlDataGrid.SetDataChanged(TRUE); 这样调用也出错

return;

}

3.结果程序编译pass,但执行File Card菜单命令时出现ASSERT错误.

4.各位帮忙分析一下错误,多谢!

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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