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
[84] [정보] KCK1010/ 드롭한 화일 이름을 받아오기.../프포
박지훈.임프 [cbuilder] 6459 읽음    1998-01-22 21:48
히히...
답변은 상당히 오랜만이군요...

드래그앤 드롭으로 화일을 받아오는거...
다른 방법이 있을지 어떤지는 모르겠는데...
전 이렇게 해결했어요...
책에서 마우스 메시지를 메시지맵으로 처리하는 걸 보고
약간 응용해서 만든건데...
제 프로그램에서는 이상없이 잘 돌아가더군요...

헤더에다가
void virtual __fastcall WMDropFiles(TWMDropFiles &Msg);

요렇게 메시지 핸들러를 선언하고...

그리고...
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles);
END_MESSAGE_MAP(TForm)

이렇게 메시지맵을 정의한다음...

DragAcceptFiles(Handle, true);
이 부분을 폼 생성부분에 넣구요...
물론 Handle은 파일을 드래그해서 드롭할 폼의 핸들이겠죠...

void __fastcall TMainForm::WMDropFiles(TWMDropFiles &Msg)
{
        char FilePath[MAX_PATH];

        DragQueryFile((HANDLE)Msg.Drop, 0, FilePath, 100);
       
        // 받은 화일명으로 처리할 부분 ...
}

이렇게 메시지 핸들러를 만들지요...

넘 설명이 없었나?

DragAcceptFiles는 API함수로, 화일을 드래그해서 드롭할 수 있도록
윈도(폼)를 등록하는 역할을 하지요.

그리구 DragQueryFile은 드롭되어서 넘어온 화일이름을 받아오는 역할
을 합니다.
메시지맵은 아시겠지요...
히히...
API함수 두개면 되는 겁니다...

넘 무식하게 설명했나?
저두  API함수에서 보고 해본 거니까 자세한건 API레퍼런스 같은데를
참고해 보면 될겁니다.


부산에서 해도해도 넘 무식한 임펠리테리였습니다.



+ -

관련 글 리스트
84 [정보] KCK1010/ 드롭한 화일 이름을 받아오기.../프포 박지훈.임프 6459 1998/01/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.