📄 subject_57920.htm
字号:
<p>
序号:57920 发表者:最后一根稻草 发表日期:2003-10-29 08:35:22
<br>主题:如何实现浏览功能
<br>内容:我建一个对话框,然后加一按钮,写浏览二字,如何一点它就能实现对文件名,或是文件的的浏览呢,望高手能分别提供两种方法的源代码。我买的书可能觉得这实在简单,都没提,上面只有一按钮,我学不下去了。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:michael 回复日期:2003-10-29 08:50:52
<br>内容: 说的清楚点
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:最后一根稻草 回复日期:2003-10-29 08:58:26
<br>内容:对文件名的浏览已找到,先贴出来<BR> void CEcfileDlg::OnBrow() <BR>{<BR> CFileDialog dlg(TRUE);<BR> if(dlg.DoModal() == IDOK)<BR> {<BR> m_path = dlg.GetPathName();<BR> UpdateData(FALSE);<BR> }<BR> else<BR> {<BR> return;<BR> }<BR>}<BR>对文件夹的浏览该怎样做呢?例如我要对某一文件夹中的所有文件进行操作,首先要得到这个文件夹的名称和所在路径,此时我应使用浏览,该如何实现呢?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:redleaf 回复日期:2003-10-29 09:00:50
<br>内容:用SHBrowseForFolder函数实现对目录的浏览<BR>或用CFileDialog来选择具体的文件<BR><BR>详细用法请参考MSDN,说得很明白
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:最后一根稻草 回复日期:2003-10-29 14:04:23
<br>内容:你若有空写一下源代码好吗,我实在看不懂!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:redleaf 回复日期:2003-10-29 17:16:16
<br>内容:首先初始化COM,调用CoInitialize()函数(可以放在app类的InitInstance函数中)<BR>然后<BR> BROWSEINFO bi = {0};<BR><BR> bi.lpszTitle = _T("Please choose a file!");<BR> bi.pszDisplayName = NULL;<BR> bi.ulFlags = BIF_STATUSTEXT | BIF_BROWSEINCLUDEFILES;<BR> bi.lpfn = NULL;<BR> LPITEMIDLIST pidl = SHBrowseForFolder(&bi); <BR><BR> char szTemp[MAX_PATH];<BR> SHGetPathFromIDList(pidl, szTemp);<BR><BR> MessageBox(szTemp);<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:最后一根稻草 回复日期:2003-10-29 18:35:36
<br>内容:谢谢,程序能够运行,“首先初始化COM”是何用意?我没有这样做,程序也行吗,<BR>另外,BIF_BROWSEINCLUDEFILES我在MSDN上没有查到,它代表什么意思啊,我把它去掉效果也是一样的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:redleaf 回复日期:2003-10-29 18:57:01
<br>内容:SHBrowseForFolder函数是系统外壳扩展函数,是一个COM对象,所以要先初始化COM<BR>不知道这样说和不合适<BR>msdn中是这么说的<BR>You must initialize COM using CoInitializeEx with the COINIT_APARTMENTTHREADED flag on dwCoInit set prior to calling SHBrowseForFolder. You can also use CoInitialize or OLEInitialize, which always use apartment threading.<BR><BR>你用的msdn是那个版本,可能较老,我用的是2001<BR>BIF_BROWSEINCLUDEFILES标识就是让他同时显示文件,如msdn所说<BR>The browse dialog will display files as well as folders. <BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:最后一根稻草 回复日期:2003-10-29 20:02:14
<br>内容:我用的msdn是从网上下的,2003,只有三个参数,<BR>BIF_EDITBOX<BR>BIF_STATUSTEXT<BR>BIF_VALIDATE<BR>感谢你的详细解释,在网上能遇到你真是不容易
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -