drag drop funzt net



  • jghj schrieb:

    wie bekomm ich den drag&drop aus der listview raus hin?

    Vielleicht hilft dir das hier: OLE Drag and Drop?!

    jghj schrieb:

    Und überhaupt auch so, dass ich drinnen die symbole anordnen/verschieben kann

    Schau dir mal hier den Abschnitt "Using List-View Working Areas" an 🙂



  • dange 😉



  • hmm...dann würd ich ja von dem auf was ich jetzt gebaut hab auf OlE umsteigen und wieder viel umdesignen müssen 😕
    naja is ok, ich such noch bissl nach anderen möglichkeiten.
    Weißt jemand zufällig wie man sich am unteren fensterrand son kleines eingedrücktes teil basteln kann auf dem dann ein ladebalken zu sehen ist wenn programme verschickt/received werden?
    Also einfach so 5 kleine vierecke in sonem ding, dass man ungefähr sich denken kann wielangs noch dauert. daneben schreib ich dann warscheinlich noch prozentzahlen hin aber das interressiert ja jetzt hier eigtl nicht 😎



  • Was meinst du? Statusbar? Progressbar? 😕



  • hmm...man müsste wissen wie das heißt -.-
    aber ich denke statusbar ... hört sich gut an 😎





  • merci, hab ich vom namen richtig getippt 😎
    ey wasses da alles gibt -.- habsch ja no nie gesehn 😉
    aber du kennst ja auch schon die komplette msdn auswendig wa? 😉

    danke auf jeden bei probs meld ich mich 😛



  • jghj schrieb:

    aber du kennst ja auch schon die komplette msdn auswendig wa? 😉

    Das bezweifle ich doch sehr stark - ein so umfassendes Werk kann man fast gar nicht auswendig kennen.
    Aber ich weiß mittlerweile (obwohl ich eigentlich praktisch nichts aktiv programmiere) schon recht gut was es alles gibt und vielfach wie es heißt und dann hilft Google mit site:msdn.microsoft.com weiter 😉



  • hehe 😉
    was und du programmierst nicht aktiv? Aber hast früher oder?
    Also mit dem sch*** drag&drop andersherum komm ich einfach net weiter 😕
    der link den du mir gegeben hast führt auch nur kurz ein, aber wies funktioniert steht im nächsten tut das noch nicht da is 😕
    in der msdn hab ich über OLE auch nix wirklich brauchbares gefunden.
    Und bei dem drag&drop was ich jetzt schon gemacht hab (andere dateien in mein listview ziehn) gibts auch noch was komisches. Ich ruf einfach bei WM_DROPFILES meine LV_InsertItem() funktion auf.
    Der bringt dann des neue icon rein, mit dem richtigen txt+icon, aber positionierts voll behindert. So ends weit unten unter den anderen icons. Ok, des jetzt noch nich so schlimm...

    Weißt du (oder sonst jemand ausm board) wie man rausfinden kann, ob WM_LBUTTONDBLCLK auf ein icon war (wenn ja, welches)?
    MfG jghj



  • jghj schrieb:

    was und du programmierst nicht aktiv? Aber hast früher oder?

    Also mit der WinAPI habe ich bisher noch nichts wirklich ernsthafteres programmiert - würde da wohl auch bzgl. des Programmdesigns sehr schnell an meine Grenzen stoßen 😉
    Normalerweise entwickle ich eher PHP-Anwendungen (CMS, Online-Shops, etc.)

    jghj schrieb:

    in der msdn hab ich über OLE auch nix wirklich brauchbares gefunden.

    Ich hab nur noch das hier bei mir in den Favoriten: MSDN: Drag and Drop

    Oder vielleicht findest du hierunter noch was:
    - Transferring Shell Objects with Drag-and-Drop and the Clipboard
    - Drag and Drop (OLE)
    - Drag and Drop (OLE)
    - OLE Drag-and-Drop and Data Transfer Classes
    - Simple Drag and Drop for List Boxes in 32-Bit Visual C++ Applications

    jghj schrieb:

    Und bei dem drag&drop was ich jetzt schon gemacht hab (andere dateien in mein listview ziehn) gibts auch noch was komisches. Ich ruf einfach bei WM_DROPFILES meine LV_InsertItem() funktion auf.
    Der bringt dann des neue icon rein, mit dem richtigen txt+icon, aber positionierts voll behindert. So ends weit unten unter den anderen icons. Ok, des jetzt noch nich so schlimm...

    Evtl. hilft es weiter, wenn du uns mal deinen Code zeigst.

    jghj schrieb:

    Weißt du (oder sonst jemand ausm board) wie man rausfinden kann, ob WM_LBUTTONDBLCLK auf ein icon war (wenn ja, welches)?

    Evtl. hilft dir dieses Beispiel (hab es mir nicht angeschaut) weiter?!



  • danke erstma. Hier nen kleiner ausschnitt ausm code (will euch ja net zuviel zu lesen zumuten^^):

    case WM_DROPFILES: {
                char    szFileName[MAX_PATH];
                string  Ext;
                HDROP   hDrop = (HDROP)wparam;
                POINT   pnt;
    
                unsigned int filecount = DragQueryFile(hDrop, 0xFFFFFFFF, NULL, 0);
    
                for(unsigned int i = 0; i < filecount; i++) {
                    DragQueryFile(hDrop, i, szFileName, MAX_PATH - 1);
    
                    Ext       = szFileName;
                    strcpy(szFileName, Ext.substr(Ext.rfind("\\") + 1, Ext.length() - (Ext.rfind("\\") + 1)).c_str());
                    Ext       = Ext.substr(Ext.rfind(".") + 1, Ext.length() - (Ext.rfind(".") + 1));
    
                    LV_InsertItem(hwnd, szFileName, GetIcon(Ext), ItemCount++);
                }
                DragFinish(hDrop);
    
                return 0;
            }
    
    int GetIcon(string Ext) {
        int FileIcon = ILOG_MISC;
        if(Ext == "dll") FileIcon = ILOG_DLL;
        else if(Ext == "exe") FileIcon = ILOG_EXE;
        else if(Ext == "mpg" || Ext == "mpeg" || Ext == "mp3" || Ext == "avi") FileIcon = ILOG_MPEG;
        else if(Ext == "txt" || Ext == "inf" || Ext == "nfo" || Ext == "ini") FileIcon = ILOG_TXT;
        else if(Ext == "bat" || Ext == "BAT") FileIcon = ILOG_BAT;
        return FileIcon;
    }
    
    void LV_InsertItem(HWND ListView, char *cText, int symbol, int Item) {
        LV_ITEM lvI;
    
        lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
        lvI.state     = 0;
        lvI.stateMask = 0;
        lvI.iItem     = Item;
        lvI.iSubItem  = 0;
        lvI.iImage    = symbol;
        lvI.pszText   = cText;
        if(symbol == ILOG_FOLDER) strcat(lvI.pszText, "\0D");
    
        ListView_InsertItem(ListView, &lvI);
    }
    

    so, ich hoff ich hab nix übersehen.



  • Was für ein ListView hast du erstellt (mit was für Styles)?
    Evtl. interessiert dich noch das hier: http://www.catch22.org.uk/tuts/sysimg.asp



  • [code]
    ListView = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, "First List-View Control", WS_CHILD | LVS_ICON | LVS_EDITLABELS | WS_VISIBLE, 18, 58, 360, 180, hwnd, NULL, globhI, NULL);
    hIList = ImageList_Create(32, 32, ILC_COLORDDB | ILC_MASK, 1, 1);
    ImageList_AddIcon(hIList, LoadIcon(globhI, MAKEINTRESOURCE(1)));
    ImageList_AddIcon(hIList, LoadIcon(globhI, MAKEINTRESOURCE(2)));
    .
    .
    .
    .



  • naja und der link hat mir nich wirklich was gebracht, der ging ja nur um die imageliste, die hab ich mir ja schon gemacht. Mit der hatte ich ja au kein problem -.-



  • jghj schrieb:

    Der bringt dann des neue icon rein, mit dem richtigen txt+icon, aber positionierts voll behindert. So ends weit unten unter den anderen icons.

    Nicht das ich das jetzt falsch verstanden hatte: der neu eingefügte Eintrag sitzt nicht einfach am Ende, sondern hat noch einen großen Abstand zum letzten Eintrag, oder?



  • ja hast mich richtig verstanden. Bestimmt 10 zeilen unter dem letzten icon



  • Aber du fügst nirgends aus Versehen Leerzeilen ein 🙄 - ich glaub da muss jemand anderes weiterhelfen (mir fehlt da einfach die Erfahrung)


Anmelden zum Antworten