C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[27502] Re:폴더 오픈 다이얼로그 창은 어떻게?
노정훈 [] 1075 읽음    2003-10-13 23:27
zeterm 님이 쓰신 글 :
:
: 파일오픈은 있는데... 폴더오픈은 없는지요?

다음 소스를 참고하세요..

int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
  if(uMsg==BFFM_INITIALIZED)
  {
    if(lstrlen((char*)lpData))
      SendMessage(hwnd, BFFM_SETSELECTION, true, lpData);
  }
  return 0;
}
//---------------------------------------------------------------------------
String __fastcall BrowseFolder(String Title, String Folder)
{
  BROWSEINFO Info;
  LPITEMIDLIST IDList;
  char Result[1024]="";
  char s[256];

  memset(&Info, 0, sizeof(Info));
  Info.hwndOwner=Application->Handle;
  Info.pidlRoot=NULL;
  lstrcpy(s, Title.c_str());
  Info.lpszTitle=s;
  Info.ulFlags=BIF_RETURNONLYFSDIRS;
  if(Folder.Length())
    lstrcpy(Result, Folder.c_str());
  Info.lParam=(UINT)Result;
  Info.lpfn=BrowseCallbackProc;

  IDList=SHBrowseForFolder(&Info);
  if(IDList)
  {
    memset(Result, 0, sizeof(Result));
    SHGetPathFromIDList(IDList, Result);
    CoTaskMemFree(IDList);
  }else
    lstrcpy(Result,"");

  return String(Result);
}

+ -

관련 글 리스트
27486 폴더 오픈 다이얼로그 창은 어떻게? zeterm 691 2003/10/13
33635     Re:폴더 오픈 다이얼로그 창은 어떻게? 물소리 932 2003/10/13
33634     Re:폴더 오픈 다이얼로그 창은 어떻게? utime->김성하 851 2003/10/13
27502     Re:폴더 오픈 다이얼로그 창은 어떻게? 노정훈 1075 2003/10/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.