000
18.05.2004, 18:17 Uhr
kleinerprogrammierer
|
Hallo.
Ich habe vor, ein Programm zu bauen welches es akzeptiert, dass Objekte vom Explorer in das Programm, in ein Objekt vom Typ TListbox gezogen werden. In dieser Listbox wird dann der Pfad angezeigt.
folgendes habe ich:
in der datei test.h
C++: |
protected: void __fastcall DropFileHandler(TWMDropFiles& Message); BEGIN_MESSAGE_MAP VCL_MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, DropFileHandler) END_MESSAGE_MAP(TForm)
|
in der datei test.cpp
C++: |
include "test.h"
[...] //--------------------------------------------------------------------------- __fastcall TOptionChild::TOptionChild(TComponent* Owner) : TForm(Owner) { DragAcceptFiles(ListBox1->Handle,TRUE); } //--------------------------------------------------------------------------- void __fastcall TOptionChild::DropFileHandler(TWMDropFiles& Message) {
char lpszFileName[MAX_PATH + 1] = {0}; HDROP hDropInfo = reinterpret_cast<HDROP>(Message.Drop); UINT uiFileCount = 0;
if (hDropInfo != NULL) { uiFileCount = DragQueryFile(hDropInfo,0xFFFFFFFF,lpszFileName,MAX_PATH); for (UINT nIndex = 0; nIndex < uiFileCount; nIndex++) { if (DragQueryFile(hDropInfo,nIndex,lpszFileName,MAX_PATH) > 0) { ListBox1->Items->Add(lpszFileName); } } DragFinish(hDropInfo); } } //---------------------------------------------------------------------------
|
Die Funktion DropFileHandler wird nicht aufgerufen; dies beweist ein test mit haltepunkten.
Kann mir jemand erklären warum und wie ich das Problem behebe??
Benutze den Borland C++ Builder 6 Dieser Post wurde am 18.05.2004 um 18:18 Uhr von kleinerprogrammierer editiert. |