新建一个对话框之后,为它建了一个类,
可是在主对话框中调用函数对它进行一些设置的时候出现错误:主对话框中调用部分:
CFileinfo::Show(fi);新类中函数定义:
void CFileinfo::Show(FILEINFO* fi)
{
CFileinfo Fileinfo;
Fileinfo.DoModal();        if(GetSafeHwnd()==NULL)
{
MessageBox("句柄为空!");    //调试时弹出 “句柄为空!”
}
// MessageBox("abc");
SetDlgItemText(IDC_EDIT1,fi->FileName);
SetDlgItemText(IDC_EDIT2,(char*)&fi->FileLen);
SetDlgItemText(IDC_EDIT3,fi->Time);调试时对应的SetDlgItemText没有生效,关闭时发生错误;
Assert Valid ...
中断在这里:
void CWnd::SetDlgItemText(int nID, LPCTSTR lpszString)
{
ASSERT(::IsWindow(m_hWnd));为什么GetSafeHwnd会为空呢,
求助啊对话框MFC

解决方案 »

  1.   

    show()不是静态函数可以这么调用?
    类CFileinfo与CxxxDlg有关系么,他怎么能操作别的类呢
      

  2.   

    对话框关了才调用SetDlgItemText这个还有什么用?各种错误
      

  3.   

    CFileinfo ff ;
    ff.Show(fi);
      

  4.   


    他在CFileinfo中操作控件.话说有什么办法可以解决吗,我也想问下
      

  5.   


    我也想问下这种情况怎么在CFileinfo里操作控件
      

  6.   

    忘了说Show声明时候前面加了static,问一下  2楼 “对话框关了才调用” 在哪里关了呀   谢谢大家花时间看帖啦
      

  7.   

    主对话框中调用部分:
    CFileinfo::Show(fi);
    -------------------
    不要这样写,你自己在主对话框类中定义一个BOOL Show(xxx)即可,在Show函数中
    CFileinfo info;
    info.DoModal();
    ------------------
    操作CFileinfo对话框上的控件当然是在CFileinfo类中去做了,比如点击CFileinfo上的OK按钮准备关闭对话框的时候
      

  8.   


    定义Show之后在里面执行也不行  问下为什么  GetSafeHwnd()会返回空啊谢谢你回帖