CString
ShowSelectDirectoryDlg(const
CString
&
strDlgTitle)
{
char
szDir[MAX_PATH]
BROWSEINFO
bi
ITEMIDLIST
*pidl
bi.hwndOwner
=
this->m_hWnd
bi.pidlRoot
=
NULL
bi.pszDisplayName
=
szDir
bi.lpszTitle
=
strDlgTitle
bi.ulFlags
=
BIF_RETURNONLYFSDIRS
bi.lpfn
=
NULL
bi.lParam
=
0
bi.iImage
=
0
pidl
=
SHBrowseForFolder(&bi)
if(pidl
==
NULL)
return
_T()
if(!SHGetPathFromIDList(pidl,
szDir))
return
_T()
这个函数的传入参数strDlgTitle,就是选择文件夹对话框的标题栏名称。只需要模拟这个函数的写法,添加代码到特定的消息响应函数里去就可以了。
如果是选择文件的话那么正如wwwgmc所写的那样。但是如果提问者说的是路径选择对话框则应是如下代码(代码中采用控制台的形式给出SHBrowseForFolder()的用法):
#include <stdio.h>
#include <Windows.h>
#include <shlobj.h>
int main()
{
BROWSEINFO stInfo = {NULL}
LPCITEMIDLIST pIdlst
TCHAR szPath[MAX_PATH]
stInfo.ulFlags = BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS | BIF_USENEWUI
stInfo.lpszTitle= "请选择路径:"
pIdlst = SHBrowseForFolder(&stInfo)
if(!pIdlst) return 1
if(!SHGetPathFromIDList(pIdlst, szPath)) return 1
printf(szPath)
return 0
}
1、打开软件。
2、新建工程,名字“canshuchuandi”。制作界面如图。编辑框变量设置为“m_a1”。
3、在资源视图,右键插入类“Cshow”制作界面,变量设置为“m_a2”。
4、双击原界面的“打开并传输”按钮,编辑事件处理程序如图。
5、双击新建的界面的“返回第一个对话框+6”按钮,编辑事件处理程序如图。
6、退出就完成了,点击按钮就可以d出新窗口了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)