利用dlg.m_ofn.lpstrTitle = "test" ;却没有问题,是我对 lPTSTR和LPCTSTR不大理解吗??

解决方案 »

  1.   


    试试改成
    char szTitle[] = "test.xls";
    dlg.m_ofn.lpstrTitle = szTitle;
    另...这个是文件选择对话框的标题吧...
      

  2.   

    默认的文件名我记得是lpstrFile..
      

  3.   

    lpstrTitle直接设置没有问题,是设置lpstrFile时出问题了 
      

  4.   

    请问如何设置CFileDialog默认保存的文件名,我用dlg.m_ofn.lpstrFile = "test.xls";可是运行到dlg.DoModal()却提示系统错误,请问怎么回事?利用dlg.m_ofn.lpstrTitle = "test" ;却没有问题,是我对 lPTSTR和LPCTSTR不大理解吗??
      

  5.   

    lpstrTitle设置的是对话框的标题,lpstrFile才是默认文件名。
    TCHAR   szPathName[_MAX_PATH];   
      memset(szPathName,   0,   _MAX_PATH*sizeof(TCHAR));   
        
      OPENFILENAME   ofn;   
      ::memset(&ofn,   0,   sizeof(OPENFILENAME));   
      ofn.Flags   =   OFN_HIDEREADONLY   |   OFN_EXPLORER   |   OFN_ENABLESIZING   |   OFN_OVERWRITEPROMPT   ;   
      ofn.lStructSize   =   sizeof   ofn;   
      ofn.hInstance   =   AfxGetInstanceHandle();   
      ofn.hwndOwner   =   this->m_hWnd;   
      ofn.lpstrFilter   =   _T("Log   files   (*.log)\0*.log\0All   files   (*.*)\0*.*\0\0");   
      ofn.lpstrTitle =   _T("请输入要保存的文件名");   
      ofn.lpstrDefExt   =   _T("");   
      ofn.nMaxFile   =   sizeof(szPathName);   
      ofn.lpstrFile   =   szPathName;   
      if   (::GetSaveFileName(&ofn))   
                      {   
                          AfxMessageBox(szPathName);   
                        }