//在打开文件对话框中选择文件
CFileDialog FileDlg (TRUE,NULL,NULL,OFN_HIDEREADONLY,"ALL Files(*.*)|*.*||");
//如果未选择打开文件,则返回
if( FileDlg.DoModal()==IDCANCEL )
   return;
m_fullname=FileDlg.GetPathName();
CFileStatus status;
CFile::GetStatus(m_fullname,status);
m_fullname.Format("文件名及其路径:%s",status.m_szFullName);我想通过打开一个文件,然后通过一个静态文本控件显示这个文件的完整路径,其中m_fullname是为这个控件定义的一个Cstring类的变量,编译能够通过,运行的时候也可以打开文件对话框选择一个文件,可是面板上只能显示“文件名及其路径:”,后面的就没有了,这是什么原因呢??是不是我的函数调用有问题,还是我的方法有问题,还请各位大虾多多指教~~

解决方案 »

  1.   

    m_fullname.Format("文件名及其路径:%s",FileDlg.GetPathName());
      

  2.   

    用SetDlgItemText(IDC_STATIC,m_fullname);就行了。另外注意一下静态文本框的长度要足够长,以容纳下这些字符,这是常见的疏忽。
      

  3.   

    刚刚看到了楼上的大虾对文件路径问题的回复,能够解决我的问题,不过不能在上面同时显示“文件名及其路径:”,例如:“文件名及其路径:c:\\My Documents\\aaa.htm”,有什么办法可以解决吗?? 期待高手的指教~~
      

  4.   

    先按横秋朋友的方法得到完整的字符串m_fullname,再用SetDlgItemText函数显示出来。即:m_fullname.Format("文件名及其路径:%s",FileDlg.GetPathName());
    SetDlgItemText(IDC_STATIC,m_fullname);
      

  5.   

    支持!
    m_fullname.Format("文件名及其路径:%s",FileDlg.GetPathName());
    SetDlgItemText(IDC_STATIC,m_fullname);
    这两句就够了
      

  6.   

    还有问题,那个。我用m_fullname=FileDlg.GetPathName();就可以,为什么用m_fullname=FileDlg.GetFolderPath()就不行呢?疑问中
    还有就是,我想选文件夹的话应该怎么处理?
    关注
      

  7.   

    选文件夹用SHBrowseForFolder()这个函数