mfc文件对话框如何实现下面这种风格

qingu 2014-09-17 09:35:20
怎么产生一个这样的文件对话框

...全文
661 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2014-11-21
  • 打赏
  • 举报
回复
最近經過測試發現,這種風格的對話框常規方式根本創建不出來,不管是否開啟主題。 如果要創建這種,必須採用對話框模版。成員:
HINSTANCE hInstance;
LPCTSTR lpTemplateName;
必須設置值。成員:
DWORD Flags;
必須包含 OFN_ENABLETEMPLATE 或 OFN_ENABLETEMPLATEHANDLE。 將 Fileopen.dlg 作為資源添加到 resource 里,包含 Dlgs.h 頭文件即可。指定該模版:
ofn.lpTemplateName = (LPCTSTR)NEWFILEOPENORD;
即可達到樓主的效果。 資料:http://msdn.microsoft.com/en-us/library/ms646951.aspx
「已注销」 2014-10-09
  • 打赏
  • 举报
回复
引用 26 楼 qingu 的回复:
界面开启主题,如何开启?
就是加入 manifest 文件或者這樣的指令: #pragma comment(linker,"\"/manifestdependency:type='win32' \ name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \ processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
qingu 2014-10-08
  • 打赏
  • 举报
回复
引用 21 楼 SXJIAKE 的回复:
1. 你得保证界面开启主题了。看你发的图,都是 Windows 2000 的经典灰色,永远不可能达到效果的。 2. 在条件 1 满足的前提下,设置 OFN_EXPLORER 标志位。 如果 1 都不满足再设置什么结构体大小和标志成员都没用。
界面开启主题,如何开启?
qingu 2014-10-08
  • 打赏
  • 举报
回复
引用 23 楼 schlafenhamster 的回复:
什么系统?什么环境?什么工具?
win7系统 vs2008
xiaohuh421 2014-09-25
  • 打赏
  • 举报
回复
重载默认的文件对话框, 网上应该有不少现成代码.
schlafenhamster 2014-09-24
  • 打赏
  • 举报
回复
什么系统?什么环境?什么工具?
dvlinker 2014-09-23
  • 打赏
  • 举报
回复
再帮忙顶一下吧!
「已注销」 2014-09-23
  • 打赏
  • 举报
回复
1. 你得保证界面开启主题了。看你发的图,都是 Windows 2000 的经典灰色,永远不可能达到效果的。 2. 在条件 1 满足的前提下,设置 OFN_EXPLORER 标志位。 如果 1 都不满足再设置什么结构体大小和标志成员都没用。
schlafenhamster 2014-09-22
  • 打赏
  • 举报
回复
vc6 上 m_ofn.lStructSize默认是76
qingu 2014-09-22
  • 打赏
  • 举报
回复
引用 17 楼 schlafenhamster 的回复:
"dlgFile.m_ofn.lStructSize=88;// new =88 这是 有效 代码, 只是 右上 按钮有 点 不一样,.可以 加入 menifest 。
其实很是一样的,调试的时候不用加这个,m_ofn.lStructSize本来就是88,设置成76也还是一样的风格
schlafenhamster 2014-09-22
  • 打赏
  • 举报
回复
"dlgFile.m_ofn.lStructSize=88;// new =88 这是 有效 代码, 只是 右上 按钮有 点 不一样,.可以 加入 menifest 。
qingu 2014-09-22
  • 打赏
  • 举报
回复
引用 15 楼 schlafenhamster 的回复:
//if use new style! OSVERSIONINFO VersionInformation; GetVersionEx(&VersionInformation); if(VersionInformation.dwMajorVersion >= 5) dlgFile.m_ofn.lStructSize=88;// new =88 else dlgFile.m_ofn.lStructSize=76;// old =76
还是不行,这样跟没加这个没区别吧?
qingu 2014-09-22
  • 打赏
  • 举报
回复
引用 19 楼 schlafenhamster 的回复:
vc6 上 m_ofn.lStructSize默认是76
但我调试了下 确实没效果啊 CFileDialog cfiledialog(TRUE, TEXT("*.ini"), TEXT(""), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, TEXT("配置文件(*.ini)|*.ini||"), NULL); cfiledialog.m_ofn.lStructSize = 76;
schlafenhamster 2014-09-19
  • 打赏
  • 举报
回复
//if use new style! OSVERSIONINFO VersionInformation; GetVersionEx(&VersionInformation); if(VersionInformation.dwMajorVersion >= 5) dlgFile.m_ofn.lStructSize=88;// new =88 else dlgFile.m_ofn.lStructSize=76;// old =76
kelas2014 2014-09-19
  • 打赏
  • 举报
回复
引用 13 楼 kelas2014 的回复:

另外,文件名显示不全怎么整

发错图
kelas2014 2014-09-19
  • 打赏
  • 举报
回复

另外,文件名显示不全怎么整
qingu 2014-09-18
  • 打赏
  • 举报
回复
引用 9 楼 sunnyloves 的回复:
就默认的风格跟你要的不是差不多吗
跟我想要的差不多 跟客户想要的差很多
洗洗睡去 2014-09-18
  • 打赏
  • 举报
回复
就默认的风格跟你要的不是差不多吗
qingu 2014-09-17
  • 打赏
  • 举报
回复
人呢 程序员有怎么早睡么,还是在家看孩子了
qingu 2014-09-17
  • 打赏
  • 举报
回复
引用 4 楼 chenlycly 的回复:
LZ这应该是win8的系统,是不是要使用OFN_EXPLORER风格?
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_EXPLORER, TEXT("TXT Files(*.txt)|*.txt|All Files(*.*)|*.*")); if (dlg.DoModal() == IDOK) { } 还是跟1楼一样,这个已经试了一下午了。。。。。
加载更多回复(5)

15,979

社区成员

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

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