如何在一个程序中实现浏览功能? 我要写一个基于MFC的统计一个文件夹中代码行数的程序,先要让用户指定文件夹路径,我想实现像别的地方一个Edit控件,可以由用户直接输入路径,也可以用右边的一个按钮实现“浏览”,弹出windows的一个系统标准对话框,在其中定位文件夹。这个按钮的代码该如何写?要调用什么MFC函数还是系统API?请帮忙,谢谢啦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CFileDialog newDlg(TRUE,".c","",OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"All Files (*.*)|*.*||",NULL );这个函数可以调用windows的一个系统标准对话框 CFileDialog newDlg(TRUE,".c","",OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"All Files (*.*)|*.*||",NULL );这个就可以 SHBrowerForFolder()这个函数好像不太好用哈,下面这个类我试试 呵呵 ,我做出来啦:#include<shlobj.h>BROWSEINFO lpbi={0,NULL,NULL,"Choose the folder that your source files in:",0,NULL,0,0};void CDialogTestDlg::OnBrowse() { char path[100]; // TODO: Add your control notification handler code here ::SHGetPathFromIDList((::SHBrowseForFolder(&lpbi)),(LPTSTR)path); MessageBox(path);}这样子就可以啦,不过CFileDialog newDlg这个我还没试好。 从下面这段话可以看出,CFileDialog在这儿确实不可用:“Q:我正在用 Visual Studio .NET 和 MFC 做一个程序。在我的程序里,用户要选择一个文件夹,并在其中拷贝文件。我可以调用 OpenFileDialog 让用户选择某个文件,但如何让打开对话框只显示文件夹呢?我见过好多安装程序给出的对话框里只显示文件夹,但我好像找不到这样的标志。Laine Chandler A:你之所以找不到正确的标志,是因为你关注的函数不对!文件打开对话框(Win32 是 GetOpenFileName,而 MFC 是 CFileDialog)是不处理文件夹的。为了只显示文件夹,你必须调用专门的外壳函数 SHBrowseForFolder。为了使用这个函数,你得填写一大堆 BROWSEINFO 结构信息,然后调用 SHBrowseForFolder。Windows 显示一个类似 Figure 3 这样的对话框。用户可以导航文件夹层次,扩展和收缩它们,并选择想要的文件夹。” 新手求助MFC服务器问题~~请高手救救急啊 c++注册表问题 响应CListCtrl发出的WM_VSCROLL消息 关于edit的自绘问题? 500~700元钱购买用vc++开发读取CAD 中Afx格式数据,并绘制到窗体中,有缩放功能。并对圆对象操作(即提取圆的坐标)????? 各位高人帮帮忙啊,我把我的分都加上去了,我刚注册的 如何编界面? 位图保存? 有关用户接口线程的问题(内有详情)? 怎麼建一個hook截攔系統消息? vc中调用dll的奇怪问题(具体状况见文章内容) 100个CRect对象保存为文件.
OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"All Files (*.*)|*.*||",NULL );这个函数可以调用windows的一个系统标准对话框
OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"All Files (*.*)|*.*||",NULL );
这个就可以
下面这个类我试试
#include<shlobj.h>
BROWSEINFO lpbi={0,NULL,NULL,"Choose the folder that your source files in:",0,NULL,0,0};
void CDialogTestDlg::OnBrowse()
{
char path[100];
// TODO: Add your control notification handler code here
::SHGetPathFromIDList((::SHBrowseForFolder(&lpbi)),(LPTSTR)path);
MessageBox(path);
}
这样子就可以啦,不过CFileDialog newDlg这个我还没试好。
“Q:我正在用 Visual Studio .NET 和 MFC 做一个程序。在我的程序里,用户要选择一个文件夹,并在其中拷贝文件。我可以调用 OpenFileDialog 让用户选择某个文件,但如何让打开对话框只显示文件夹呢?我见过好多安装程序给出的对话框里只显示文件夹,但我好像找不到这样的标志。
Laine Chandler A:你之所以找不到正确的标志,是因为你关注的函数不对!文件打开对话框(Win32 是 GetOpenFileName,而 MFC 是 CFileDialog)是不处理文件夹的。为了只显示文件夹,你必须调用专门的外壳函数 SHBrowseForFolder。为了使用这个函数,你得填写一大堆 BROWSEINFO 结构信息,然后调用 SHBrowseForFolder。Windows 显示一个类似 Figure 3 这样的对话框。用户可以导航文件夹层次,扩展和收缩它们,并选择想要的文件夹。”