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

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[756] [Dialog] OpenDialog 폴더 위치 고정시키기
장성호 [nasilso] 7572 읽음    2008-03-12 17:50
원리는 간단하다.
OpenDialog 의 FolderChange 이벤트에서
OpenDialog->FileName 으로 바뀐 Folder의 경로를 확인해본후에
내가 원하는 폴더가 아니면 원하는 폴더로 옮겨버린다.

폴더를 옮길때는
  - FindWindow로  파일명 입력창을 찾아서 변경을 원하는 폴더경로를 입력하고
  - OK 버튼을 찾아서 sendmessage로 click 이벤트를 만들어서 날려준다.


const  int ID_FILENAME_98 = 1152;
const  int ID_FILENAME_WIN2K=1148;
const  int ID_DLG_OK = 1;
void __fastcall SetOpenDialogDir(HWND hWnd,String Path,bool &Busy)
{

    HWND hFileName;
    HWND hOK;
    char Buff[255];//:string[255];

    if( Busy)return;

    Busy=True;
    if( Win32MajorVersion >= 5 )
    {
    hFileName= GetDlgItem(GetParent(hWnd), ID_FILENAME_WIN2K);
    hFileName=FindWindowEx(hFileName,0,"COMBOBOX",NULL);
    hFileName=FindWindowEx(hFileName,0,"EDIT",NULL);
    }
    else
     hFileName = GetDlgItem(GetParent(hWnd), ID_FILENAME_98);

    hOK = GetDlgItem(GetParent(hWnd), ID_DLG_OK);
    GetWindowText(hFileName,&Buff[0],sizeof(Buff));
    if( LowerCase(Buff)==LowerCase(Path) )
    {
        Busy =False;
         return ;
    }

    SetWindowText(hFileName, Path.c_str());
    SendMessage(hOK, WM_LBUTTONDOWN, MK_LBUTTON, MAKEWORD(0, 0));
    SendMessage(hOK, WM_LBUTTONUP, MK_LBUTTON, MAKEWORD(0, 0));
    Busy =False;
}
//------------------------------------------------------------------------
void __fastcall TForm1::OpenDialog1FolderChange(TObject *Sender)
{
     static bool Busy;

    String sPath=OpenDialog1->FileName;
    sPath=sPath.UpperCase();
    if(sPath.Pos("C:\\ZZANG")<1)
    {
        SetOpenDialogDir(OpenDialog1->Handle, "C:\\ZZANG",Busy);
        return;
    }

}

//------------------------------------------------------------------------


출처는?
http://www.87717.com/delphi/delphi_9301.html


그럼..

+ -

관련 글 리스트
756 [Dialog] OpenDialog 폴더 위치 고정시키기 장성호 7572 2008/03/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.