DragAcceptFiles API 호출할때 ListView객체가 아닌
ListView의 Window-Handle을 넘겨줘야 합니다.
DragAcceptFiles(ListView1->Handle, true);
그럼..
거짓말처럼 님이 쓰신 글 :
: TWndMethod OrigProc1;
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
: DragAcceptFiles(ListView1, true);
: OrigProc1 = ListView1->WindowProc;
: ListView1->WindowProc = EditProc1;
: }
:
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::EditProc1(TMessage& Msg)
: {
: if(Msg.Msg==WM_DROPFILES)
: {
: AddFileToEdit((HANDLE)Msg.WParam);
: }
: OrigProc1( Msg );
: }
:
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::AddFileToEdit(HANDLE hDrop)
: {
: AnsiString FilePath;
: FilePath.SetLength(MAX_PATH);
: int FileCount = DragQueryFile(hDrop, 0xFFFFFFFF, FilePath.c_str(), MAX_PATH);
: if(FileCount)
: {
: DragQueryFile(hDrop, 0, FilePath.c_str(), MAX_PATH);
: ShowMessage(FilePath);
: //Edt_FileName->Text=FilePath;
: }
: DragFinish(hDrop);
: }
: //---------------------------------------------------------------------------
:
: EditProc1 이 함수로는 접근을 하지만 탐색기에 있는 폴더를 드래그 해도 마우스 모양이 + 모양이 안나오고 x 표시가
:
: 되며 WM_DROPFILES 위 이벤트를 감지 못하내요 ㅠㅠ
: