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
[69588] Re:Re:Re:BEGIN_MESSAGE_MAP 관련 질문입니다.
장성호 [nasilso] 2372 읽음    2013-06-03 18:30
원리는 똑같습니다만
VCL폼 클래스에서 특정 컨트롤의 메세지맵은 지원하지 않기때문에
약간의 수고가 필요합니다

다음 링크를 참조하세요
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=622


거짓말처럼 님이 쓰신 글 :
: 저 그러면 제가 원하는 ListView에 탐색기를 드랍시 이벤트를 발생하게 하려면 어떻게 해야 하나요 ???
:
: 장성호 님이 쓰신 글 :
: : "탐색기에서 드래그 하고 놓는 순간 이벤트가 감지 되어야 하는데..."
: :
: :
: : WM_DROPFILES 메세지는 탐색기에서 드래그 하고자 하는 순간 발생하는 메세지가 아닙니다.
: :
: : Drag해서 Window(Form)에 Drop시켰을때 발생하는 메세지입니다.
: :
: : 그리고 Window(Form)가 탐색기로 부터 Drag-Drop 허용하기 위해서는
: : DragAcceptFiles를 해주어야 합니다.
: :
: : DragAcceptFiles(Handle,true)
: :
: : 그럼..
: :
: :
: : 거짓말처럼 님이 쓰신 글 :
: : :
: : :
: : : #include <vector>
: : :
: : : using namespace std;
: : :
: : : class TForm1 : public TForm
: : : {
: : : __published:    // IDE-managed Components
: : :
: : :     void __fastcall WMDropFiles(TWMDropFiles &Msg);
: : :     void __fastcall FormCreate(TObject *Sender);
: : :
: : :
: : : private:    // User declarations
: : : public:        // User declarations
: : :     __fastcall TForm1(TComponent* Owner);
: : :
: : :
: : : BEGIN_MESSAGE_MAP
: : :         VCL_MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles);
: : : END_MESSAGE_MAP(TForm)
: : : };
: : :
: : :
: : : //---------------------------------------------------------------------------
: : : extern PACKAGE TForm1 *Form1;
: : : //---------------------------------------------------------------------------
: : : #endif
: : :
: : :
: : : void __fastcall TForm1::FormCreate(TObject *Sender)
: : : {
: : :     DragAcceptFiles(Handle, true);
: : : }
: : :
: : : void __fastcall TForm1::WMDropFiles(TWMDropFiles &message)
: : : {
: : :     char fullPath[MAX_PATH];
: : :     UINT fileCount = DragQueryFile((HDROP)message.Drop,0xffffffff,NULL,0);
: : :     for(UINT i=0 ;i<fileCount ;i++)
: : :     {
: : :         DragQueryFile((HDROP)message.Drop,i,fullPath,MAX_PATH);
: : :        //    Memo1->Lines->Add(fullPath);
: : :     }
: : :     DragFinish((HDROP)message.Drop);
: : : }
: : :
: : : //---------------------------------------------------------------------------
: : :
: : : 위 코드와 같이 BEGIN_MESSAGE_MAP 을 이용하면 탐색기에서 드래그 하고 놓는 순간 이벤트가 감지 되어야 하는데
: : :
: : : WMDropFiles함수에 디버깅을 위하여 브레이크를 걸어도 함수 호출 자체가 되지 않습니다... 

+ -

관련 글 리스트
69585 BEGIN_MESSAGE_MAP 관련 질문입니다. 거짓말처럼 2184 2013/06/03
69586     Re:BEGIN_MESSAGE_MAP 관련 질문입니다. 장성호 2233 2013/06/03
69587         Re:Re:BEGIN_MESSAGE_MAP 관련 질문입니다. 거짓말처럼 2215 2013/06/03
69588             Re:Re:Re:BEGIN_MESSAGE_MAP 관련 질문입니다. 장성호 2372 2013/06/03
69592                 Re:Re:Re:Re:BEGIN_MESSAGE_MAP 관련 질문입니다. 거짓말처럼 1896 2013/06/04
69594                     Re:Re:Re:Re:Re:BEGIN_MESSAGE_MAP 관련 질문입니다. 장성호 1972 2013/06/04
69595                         Re:Re:Re:Re:Re:Re:BEGIN_MESSAGE_MAP 관련 질문입니다. 거짓말처럼 2286 2013/06/04
69599                             해결했습니다... 거짓말처럼 2017 2013/06/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.