45上位机VC MFC新型的打开文件对话框
45上位机VC MFC新型的打开文件对话框
功能展示
我们在最新的操作系统中操作软件时,进行文件打开操作时,弹出的操作窗口具有非常方便的快捷的功能,界面也美观,那么我们如何在自己的上位机程序加载参数文件时,也用上这一新型的对话框窗口呢?我们当前来实现这一应用,效果如图
要点提示 实现新型的文件打开对话框窗口我们可使用GetOpenFileName()函数,此函数跟随一个结构体OPENFILENAME。在使用GetOpenFileName函数前就得定义这一结构体,并对这一结构体内成员进行功能选择性设置; 如我们当前例程的设置实现了参数文件的打开;OPENFILENAME ofn = { 0 }; ofn.lStructSize = sizeof(ofn); ofn.lpstrFilter = "gkbc8文件\0*.gkbc8*\0AllFiles(*.*)\0*.*\0\0";//要选择的文件后缀 ofn.lpstrInitialDir ="D:\\";//默认的文件路径 ofn.lpstrFile = szBuffer;//存放文件的缓冲区 ofn.nMaxFile = sizeof(szBuffer) /sizeof(*szBuffer); ofn.nFilterIndex = 0;
ofn.Flags =OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER; 实现功能 1.新建基于对话框的应用程序 2.添加一个按钮实现新型对话框的加载,添加一个编辑框,用于显示加载的文件内容
3.然后在按钮的实现函数内实现新型对话框的加载功能 - void CGkbc8Dlg::OnOpen()
- {
- char szBuffer[1024] = { 0 };
- OPENFILENAME ofn = { 0 };
- ofn.lStructSize = sizeof(ofn);
- ofn.lpstrFilter = "gkbc8文件\0*.gkbc8*\0All Files(*.*)\0*.*\0\0";//要选择的文件后缀
- ofn.lpstrInitialDir = "D:\";//默认的文件路径
- ofn.lpstrFile = szBuffer;//存放文件的缓冲区
- ofn.nMaxFile = sizeof(szBuffer) / sizeof(*szBuffer);
- ofn.nFilterIndex = 0;
- ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER;//标志如果是多选要加上OFN_ALLOWMULTISELECT
- if(GetOpenFileName(&ofn) )//用户选择了文件且点击确认按钮时返回非0值
- {
- CString str;
- CFile mFile;
- if(mFile.Open(szBuffer,CFile::modeRead)==0)
- return;
- mFile.Read(str.GetBuffer(mFile.GetLength()),mFile.GetLength());
- str.ReleaseBuffer();
- mFile.Close();
- SetDlgItemText(IDC_EDIT1,str);
- }
复制代码我们来演示下功能实现的整个过程 源码及视频下载 (仅在电脑可见)
|