GetOpenFileName 选择文件对话框的问题

jingjing_123 2010-08-18 03:40:51
OPENFILENAME ofn;
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = TEXT('\0');
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT("txt\0*.txt"); //定义三个选项,all,text和exe
ofn.nFilterIndex = 1; //定义首选项是哪一个
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;

ofn.lpstrInitialDir = (LPCWSTR)unicodebuf;
ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

if(GetOpenFileName(&ofn))
{
//dosomthing SetTimer(T_SHOW_LIST_ID,10,NULL);
}

这个选择文件对话框式非模态,如何改成模态对话框
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingjing_123 2010-08-18
  • 打赏
  • 举报
回复
ofn.lpstrFilter = TEXT("txt\0*.txt");
只有一项 所以 下标从0开始 : ofn.nFilterIndex = 0;


ok 非常感谢 结贴!
ColdMooon 2010-08-18
  • 打赏
  • 举报
回复
OPENFILENAME ofn;
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
这3行可以简单的这样写OPENFILENAME ofn={sizeof ofn};
ofn.lpstrFilter = TEXT("txt\0*.txt");
有可能会出问题的,最后要加个\0
ofn.nFilterIndex = 1;
第一项是0
hastings 2010-08-18
  • 打赏
  • 举报
回复
m_ofn.hwndOwner这个字段赋一下值就行了,表示他的父窗口。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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