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;
}

解决方案 »

  1.   

    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.各位帮忙分析一下错误,多谢!
      

  2.   

    对话框中的控件变量在对话框外是不能进行调用的!很多网友犯这种错误。在定义对话框实例后,对话框上的控件并没有真正创建起来。你可以看一下控件的句柄,应该是0x00000000吧。不要想着这样做。你可以在对话框中定义一个值变量,来接收你要传给DataGrid的值,然后在对话框初始化的时候,将这个值赋给DataGrid就可以了。
      

  3.   

    To  happyparrot:
    1.我在ClassWizard中查看,DataGrid只有control变量,不能创建Value变量.
    2.我是想在界面中,执行一个菜单命令的时候,让DataGrid执行一个SetDataChanged()
    函数.我发送一个自定义消息试一下.
      

  4.   

    都是不行的。我的意思是,你随便定义一个变量接收就行,干吗非得是DataGrid的Value变量呢?
    发送消息也好,怎么也好,在对话框没有显示之前,你对控件的操作都是徒劳的。
      

  5.   

    多谢happyparrot.我明白你的意思了.我现在改为在对话框上加按钮对DataGrid控件进行控制!有个问题向你请教:
    1.DataGrid控件在属性表(PropertySheet)的一个属性页上.
    2.我发现这个软件,它在改属性页上DataGrid的数据后,先不存盘,
    3.然后在执行一个菜单命令时(此菜单命令代码应该不可能在属性页的那个类里),却可以对DataGrid的数据进行存盘.
    3.它是采用什么办法实现的呢?