新人求助,关于MFC中调用cfiledialog的问题

写代码的Jaeger 2013-12-01 01:47:06
void DealTxtFile::OnBOpenFile() //点击打开文件按钮
{
CFileDialog filedlg(true,".txt|*. *",NULL,OFN_HIDEREADONLY|OFN_ENABLESIZING,"文本文件( *.txt)|*.txt|ALL File(*. *)|*. *||",NULL);
if(filedlg.DoModal()==IDOK)
{
//UpdateData(true);
strFileName=filedlg.GetFileName();
m_FileName=filedlg.GetFileTitle();
UpdateData(false);


}
OnInitDialog();

}


就是上面的一段代码调用的cfiledialog,然后再XP下正常没事,在win7下能打开文件对话框,但是一拖拽边上的滚动条就直接闪退了,win8.1下直接点击“打开文件”按钮闪退了,这是怎么回事呀?
程序是vc6.0写的。
...全文
175 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gamelose 2014-03-18
  • 打赏
  • 举报
回复
filedlg 前添加 static 或者 使用成员。filedlg 析构导致崩溃。
冬南风 2013-12-24
  • 打赏
  • 举报
回复
我遇到的问题是,在vs下运行程序是好的,直接双击运行点击打开文件按钮闪退,后来发现把这个OFN_HIDEREADONLY去掉就好了。。。不知道原因。。
yiyefangzhou24 2013-12-02
  • 打赏
  • 举报
回复
win 7下呢?win 7下应该是可以的,我经常用这个类,win8.1这个还真不知道,只用过不知道程序方面有什么变化
图灵狗 2013-12-02
  • 打赏
  • 举报
回复
相对于WIN7/WIN8来说,VC6确实太古老了,应该是不兼容的问题,改为高版本的VS试试。
引用 楼主 u013011318 的回复:
void DealTxtFile::OnBOpenFile() //点击打开文件按钮
{	
	CFileDialog filedlg(true,".txt|*. *",NULL,OFN_HIDEREADONLY|OFN_ENABLESIZING,"文本文件( *.txt)|*.txt|ALL File(*. *)|*. *||",NULL);
	if(filedlg.DoModal()==IDOK)
	{ 
		//UpdateData(true);
		strFileName=filedlg.GetFileName();
	    m_FileName=filedlg.GetFileTitle();
       	UpdateData(false);
		
		
	}
	OnInitDialog();
	
}
就是上面的一段代码调用的cfiledialog,然后再XP下正常没事,在win7下能打开文件对话框,但是一拖拽边上的滚动条就直接闪退了,win8.1下直接点击“打开文件”按钮闪退了,这是怎么回事呀? 程序是vc6.0写的。
懒懒的吉他手 2013-12-02
  • 打赏
  • 举报
回复
在win8.1编译下试试……话说VC6太老了……
写代码的Jaeger 2013-12-01
  • 打赏
  • 举报
回复
引用 1 楼 yiyefangzhou24 的回复:
void DealTxtFile::OnBOpenFile() //点击打开文件按钮
{    
    CFileDialog filedlg(true,".txt|*. *",NULL,OFN_HIDEREADONLY|OFN_ENABLESIZING,"文本文件( *.txt)|*.txt|ALL File(*. *)|*. *||",NULL);
    if(filedlg.DoModal()==IDOK)
    { 
        //UpdateData(true);
        strFileName=filedlg.GetFileName();
        m_FileName=filedlg.GetFileTitle();
           UpdateData(false);//不需要刷新,去掉
         
         
    }
    OnInitDialog();//这个调用什么意思?你在文档函数中调用mfc初始化函数?去掉这句
     
}
修改后再win8.1下打开依旧出现闪退,xp下正常,貌似不是这个原因。。。
yiyefangzhou24 2013-12-01
  • 打赏
  • 举报
回复
void DealTxtFile::OnBOpenFile() //点击打开文件按钮
{    
    CFileDialog filedlg(true,".txt|*. *",NULL,OFN_HIDEREADONLY|OFN_ENABLESIZING,"文本文件( *.txt)|*.txt|ALL File(*. *)|*. *||",NULL);
    if(filedlg.DoModal()==IDOK)
    { 
        //UpdateData(true);
        strFileName=filedlg.GetFileName();
        m_FileName=filedlg.GetFileTitle();
           UpdateData(false);//不需要刷新,去掉
         
         
    }
    OnInitDialog();//这个调用什么意思?你在文档函数中调用mfc初始化函数?去掉这句
     
}

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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