我住包子山

浏览文件夹对话框,演示SHBrowseForFolder用法

image
/********************************************************************
  created:  2008/04/24
  created:  24:4:2008   12:47
  author:    Gohan
                http://feed.feedsky.com/gohan
  purpose:  演示SHBrowseForFolder用法
*********************************************************************/
#include <Windows.h>
#include <ShlObj.h>
int main()
{
   
BROWSEINFO bi;
   
ZeroMemory(&bi,sizeof(BROWSEINFO));
   
LPMALLOC pMalloc;
   
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
   
TCHAR * path = new TCHAR[MAX_PATH];
   
if(pidl != NULL)
    {
       
SHGetPathFromIDList(pidl,path);
       
MessageBox(NULL,path,TEXT("Choose"),MB_OK);
       
if(SUCCEEDED(SHGetMalloc(&pMalloc)))//pidl指向的对象用完应该释放,之前忽略了
        {
           
pMalloc->Free(pidl);
           
pMalloc->Release();
        }
    }
   
else
    {
       
MessageBox(NULL,TEXT("选择为空"),TEXT("Choose"),MB_OK);
    }
   
delete path;//谢谢true的提醒,以后我一定会更加慎重
}

posted on 2008-04-24 13:15 Gohan 阅读(1502) 评论(10)  编辑 收藏 引用 所属分类: C++MFC/SDK

Feedback

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法[未登录] 2008-04-24 18:21 true

TCHAR * path = new TCHAR[MAX_PATH];
delete path;  回复  更多评论   

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法 2008-04-24 20:34 Z_song

正好要用,感谢中。。。  回复  更多评论   

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法 2008-04-25 21:19 wangyucao

你也很努力啊!!呵呵  回复  更多评论   

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法 2008-05-21 23:56 ershu

delete [] path;

好好学习吧  回复  更多评论   

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法 2008-05-22 22:38 Gohan

@ershu
朋友,针对字符串,delete []与delete是等价的(至少在目前的VC++下)。这点我是学习过的,至于动态开的数组则必须加[]  回复  更多评论   

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法 2008-05-30 23:16 hoodlum1980

放在你这里,delete不加也可以,因为你的程序马上就要退出了,这个进程中申请的内存也就会被系统给收回。但是如果你的程序还在运行,则最好自己管理号自己的内存。  回复  更多评论   

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法 2008-05-31 19:07 Gohan

@hoodlum1980
对的,养成好的编程习惯,:)  回复  更多评论   

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法 2008-06-12 10:12 tmp

MessageBox(NULL,TEXT("),TEXT("Choose"),MB_OK);
这里少了个引号,呵呵  回复  更多评论   

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法 2008-06-12 13:44 Gohan

@tmp
呵呵,谢谢你,你很细心,我用一个叫code2html的程序把code转成html,它有点bug,有中文字符串会丢掉引号:),已改正  回复  更多评论   

# re: 浏览文件夹对话框,演示SHBrowseForFolder用法 2008-06-24 13:58 ailee

正好要用,谢了.  回复  更多评论