[ Mirko Rajkovača @ 09.12.2004. 20:04 ] @
Znam kako mogu prozor svoje aplikacije da ucinim "metom" za drag&drop fajlova, ali kako (kojom API funkcijom) da zapocnem drag&drop iz svoje aplikacije? |
[ Mirko Rajkovača @ 09.12.2004. 20:04 ] @
[ _Super_Ellite_Bug_ @ 09.12.2004. 23:25 ] @
[ milanche @ 10.12.2004. 22:10 ] @
Postoje dve implementacije: jedna je starija i bazirana je na tzv. legacy clipboard-u,
dok je druga novija, bazirana na OLE/COM tehnologiji. Ova druga je znatno komplikovanija, sto za tvoj zahtev nije potrebno. Evo kako se implementira na bazi legacy clipboard-a: Kljucna stvar je da override-ujes handler za poruku WM_DROPFILES koja se moze naci u spisku Window poruka (nije u spisku poruka za Dialog). Metod se zove OnDropFiles( ) Unutar tog metoda koristis visenamensku funkciju ::DragQueryFile( ) koja u zavisnosti od ulaznih parametara moze da ti kaze koliko fajlova je drop-ovano, koliko je dugacak string imena fajla, i na kraju da ti vrati ime drop-ovanog fajla. Da bi sve to radilo u Dialog-based aplikacijama, u WM_CREATE handler-u (koji se zove OnCreate( )) treba da pozoves metod DragAcceptFiles( ) koji inicijalizuje podrsku za drag-drop. Nisam primetio da skodi ni kad se zove u OnInitDialog( ) U SDI/MDI aplikacijama, drag/drop je po defaultu aktivan, treba ti samo OnDropFiles( ) implementacija. Masa drugih stvari je na mestu - prepoznavanje i odbacivanje drop-ovanog shortcut-a i/ili foldera, a sto je najvaznije, u ovoj arhitekturi bez problema radi i drop-ovanje na shortcut aplikacije. [ Mirko Rajkovača @ 11.12.2004. 13:46 ] @
Milanche hvala na pomoci ali me ne zanima kako da prepoznam fajlove koje korisnik dovuce iznad mog prozora, to sam vec odradio na nacin koji si ti opisao.
![]() ![]() [ milanche @ 11.12.2004. 19:48 ] @
Trazis resenje za malo tezi problem - treba iskopati kako se Windows Exploreru mogu
dostavljati fajlovi programatski (ekvivalent rucnog drag-and-drop-ovanja). Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|