Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Drag&Drop in C (ohne MFC usw)

1 view
Skip to first unread message

Janina Kramer

unread,
Jan 2, 2002, 8:45:47 AM1/2/02
to
Hey ho!
Ich habe eine DialogBox, in die ich (in einem bestimmten Teilbereich) eine
Datei per Drag&Drop ziehen kann. Dieser Teilbereich ist allerdings wieder
ein kleines Fenster (Eingabe, Static oder sonstwas halt) und ich möchte auf
das Ereignis reagieren wenn der Cursor dabei ist, etwas in diesen Bereich zu
draggen (der Fenstertext soll sich ändern oder so). mit WM_DROPFILES kriege
ich aber erst mit, denn die Files schon in dem Bereich gedroppt wurden, also
wenn der Mausbutton schon wieder losgelassen wurde - Ich will's aber vorher
wissen. WM_MOUSEMOVE funktioniert auch nicht (vielleicht weil der Dialog
nicht im Vordergrund ist - das soll er aber auch nicht sein).
Jetzt ist die Frage, wie ich halt mitbekomme, wann der Mauszeiger in der
"Drop-Area" ist bevor der Mausbutton losgelassen wurde.
Und ich will keine MFC, C++ oder dergleichen (wie OnDragOver) benutzen,
sondern einfach schönes, reines C ;) .

Danke schonmal im voraus,
Janina


Wolfgang Schulz

unread,
Jan 3, 2002, 5:14:28 AM1/3/02
to
Hallo Janina,

On Wed, 2 Jan 2002 14:45:47 +0100, "Janina Kramer"
<moq...@blackmoqua.de> wrote:

>Jetzt ist die Frage, wie ich halt mitbekomme, wann der Mauszeiger in der
>"Drop-Area" ist bevor der Mausbutton losgelassen wurde.
>Und ich will keine MFC, C++ oder dergleichen (wie OnDragOver) benutzen,
>sondern einfach schönes, reines C ;) .

Hm, macht denn der Handler "OnDragOver" das was Du möchtest? Wenn ja,
dann debug doch einfach mal in den MFC-Code rein und schau, wie es
dort gemacht ist. Letztendlich brechen alle MFC-Funktionalitäten auf
die normale Windows-API und auf das Behandeln von Windows-Messages
runter.

Ansonsten fällt mir nur noch ein, daß es eine Möglichkeit gibt, den
Mauszeiger "einzufangen", d.h. man kann eine API-Funktion aufrufen,
die dann dafür sorgt, daß Du die Maus-Position auch abfragen kannst,
wenn die Maus nicht in deinem Fenster ist und Dein Fenster auch nicht
den Focus hat. AFAIK sind die Zeiger-Koordinaten dann aber absolut und
nicht mehr relativ zum linken oberen Ecke Deines Fensters.

HTH.

Und wech,

Wolfgang Schulz

--

e-Mail: Wolfgang.Sc...@nexgo.de

0 new messages