在做一个工程,由于打开文件的时候,用了CFileDialog,然后这个打开按键在界面的一边,如果直接用
CFileDialog dlg(
TRUE, //TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。
_T("AIM"),//指定默认的文件扩展名。
_T("*.aim"), // 指定默认的文件名。
OFN_NOCHANGEDIR, //指明一些特定风格。一定注意这里选择这个,可能会造成数据库连接失败
_T("路径文件(*.aim)|*.aim|")
);
if(dlg.DoModal()==IDOK)
{
CString lpszPathName;
lpszPathName=dlg.GetPathName();
。。。。。。。。。。。。。
}
dlg会显示在界面的一边,而不是在界面的中间。为了显示在中间,我试了很多方法,最后发现,domodal后的窗口中心总
是和当前焦点的窗口中心重合,为此,我把指定窗口激活焦点,就可以移动domodal的位置了。
CFileDialog dlg(
TRUE, //TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。
_T("AIM"),//指定默认的文件扩展名。
_T("*.aim"), // 指定默认的文件名。
OFN_NOCHANGEDIR, //指明一些特定风格。一定注意这里选择这个,可能会造成数据库连接失败
_T("路径文件(*.aim)|*.aim|")
);
pMainDlg->SetFocus(); //为了把dlg放在中间
if(dlg.DoModal()==IDOK)
{
CString lpszPathName;
lpszPathName=dlg.GetPathName();
}
this->SetFocus();
本文介绍了一种在使用CFileDialog时使其显示于屏幕中央的方法。通过调整代码,在调用DoModal()之前设置父窗口为焦点,使得对话框出现在屏幕中间,改善用户体验。
2277

被折叠的 条评论
为什么被折叠?



