+ -
当前位置:首页 → 问答吧 → 关于打开文件对话框CFileDialog dialog

关于打开文件对话框CFileDialog dialog

时间:2011-11-28

来源:互联网

我在视图类中通过按键来打开文件,为什么在XP和2003系统中这个打开对话框为什么不在最前面显示,而在win7,win8,win2000,中就是正常的,求高手解释;如何才能在打开对话框时始终在最前面显示?

作者: liuliufen   发布时间: 2011-11-28

打开文件,对话框都是非模态对话框,当然显示在前面,不知道你的是什么状态。。

HWND SetActiveWindow(
  HWND hWnd 
); 
 这个可以设置当前活动窗口。。

作者: shen_wei   发布时间: 2011-11-28

这个是模态对话框啊,照理说不应该有这种问题啊,你怎么写的

作者: xuddk727   发布时间: 2011-11-28

有对话框出来,但是不是在最前面,而是被主窗口挡住了,另外,如果用这个来设置当前活动窗口,那怎么回去呢?

作者: liuliufen   发布时间: 2011-11-28

只有XP和2003中不是在最前面显示;

作者: liuliufen   发布时间: 2011-11-28

if(!OpenReadFile)
{
CFileDialog dialog((TRUE) , NULL , NULL , OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , L"The video file|*.dat||");  
CString strFilePath ;
if(dialog.DoModal() == IDOK)
{

CString aryFilename ;
aryFilename = dialog.GetFileName() ;

USES_CONVERSION ;
ReadRecordFile = fopen(W2A(aryFilename) , "rb") ;
if(ReadRecordFile == NULL)
{
OutputDebugString(L"failed to open file\n") ;
continue ;
}
OpenReadFile = true ;
}
else
{
}

作者: liuliufen   发布时间: 2011-11-28

贴点你的代码出来看看。

作者: wltg2001   发布时间: 2011-11-28

是不是被别的程序抢占了焦点

作者: oyljerry   发布时间: 2011-11-28

CWnd* pParentWnd有没有指定?如果没有指定的话设置为你的视图类试试?

作者: yuucyf   发布时间: 2011-11-28

那个视图类窗口是每秒刷新100次的,我这个程序是用来做些逻辑控制和计算的,刷新的消息都是这个程序发送消息过去的;

作者: liuliufen   发布时间: 2011-11-28

7楼说被别的程序抢了焦点是怎么回事,可以再说清楚点吗?

作者: liuliufen   发布时间: 2011-11-28

刷新的操作重新开线程,不要和界面放到一个线程

作者: ningfc1024   发布时间: 2011-11-28