Unbekannte ID bekommen (am Beispiel einer ListBox)



  • Danke für die Info! Aber ich schrieb ja ganz oben, dass ich den C++ Builder verwende (von Borland).

    [EDIT]
    Bekommt man Spy++ auch einzelnd? Oder kann ich andere Programme nehmen?
    [/EDIT]



  • Es gibt auch andere Programme die sich aber alle nicht sonderlich unterscheiden. Können alle ansich das gleiche.
    Wegen deiner ID. Wenn du jedesmal die ID dir holst dann ist doch egal wie diese letztendlich ist. Du kannst sie doch einfach Benutzen. Oder wolltest jetzt die ID "fest in deinen Programm programmieren"? Oder Versteh ich dich nicht?

    MfG schirrmie



  • Anscheinend ist es nicht ganz klar was ich will, deshalb hier eine genauere Erklärung:
    Mein Programm soll direkt nach dem Start(Ereignis: FormCreate) alle Datei-Namen aus einem bestimmten Pfad in die ListBox schreiben. Die ListBox ist dabei von vornherein da, wird also nicht erst zur Laufzeit erstellt. Weiß nicht, ob das was zur Sache tut, aber die ListBox befindet sich in einer GroupBox, welche sich auf einem Panel befindet, welches wiederum auf der Form plaziert ist. Ich habe 2 Möglichkeiten gefunden um das zu realisieren. Einmal die Geschichte mit FindFirstFile() und FindNextFile() und dann die Funktion DlgDirList(), welche mir besser geeignet schien. Diese Funktion erwartet 5 Parameter:
    DlgDirList(void * hDlg, char * lpPathSpec, int nIDListBox, int nIDStaticPath, unsigned int uFileType);
    Und da liegt mein Problem. Ich weiß nicht, wie ich die benötigten Parameter bekomme.

    char * lpPathSpec ist kein Problem.
    int nIDStaticPath setze ich 0, weil ich das net brauche.
    unsigned int uFileType ist mir egal, deswegen standard -> NULL.

    Bei den anderen beiden Parameter habe ich keine Ahnung und brauche eure Hilfe.

    MfG dust



  • dust schrieb:

    Diese Funktion erwartet 5 Parameter:
    DlgDirList(void * hDlg, char * lpPathSpec, int nIDListBox, int nIDStaticPath, unsigned int uFileType);
    Und da liegt mein Problem. Ich weiß nicht, wie ich die benötigten Parameter bekomme.

    Dazu gibt es wie immer die Beschreibung in der MSDN.
    ➡ http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listboxes/listboxreference/listboxfunctions/dlgdirlist.asp



  • Tut mir Leid ich Versteh dich immer noch nicht.

    Mein Programm soll direkt nach dem Start(Ereignis: FormCreate) alle Datei-Namen aus einem bestimmten Pfad in die ListBox schreiben. Die ListBox ist dabei von vornherein da, wird also nicht erst zur Laufzeit erstellt.

    Also hat jetzt dein Programm die ListBox oder wie die ist von vornherein da?. Also wenn ich ein Prog schreibe ist da nie ne ListBox von vornerein da 😕

    MfG schirrmie



  • Ja, die habe ich darein gesetzt ^^!

    Guck mir grad MSDN an!



  • Normalerweise sollte man als Programmierer die ID von seinen Controls kennen... Oder hast du wenigstens ein Handle zu der Listbox? Dann kannst du mit GetWindowLong und GWL_ID die ID holen.



  • Das ist mir klar, dass die IDs wichtig sind, aber ich kann die Resource-Datei nunmalnicht einsehen, bei dem komischen Borland Compiler!

    Das in der MSDN hatt ich übrigens schon mal gelesen ... das bringt mich nicht weiter, da in diesem Beispil die ID der ListBox bekannt ist.

    mfg



  • Badestrand schrieb:

    [...] Um ein Child-Fenster (etwa einen Button oder eine Listbox in einem Fenster) zu bekommen, benutze FindWindowEx.
    Wenn es nur _eine_ Listbox in dem Fenster gibt, dann kannst du bei FindWindowEx als Child-Klassenname "LISTBOX" angeben (und bei Name nix).



  • Hmm ich kenne mich mit den Borland nicht aus. Aber das hört sich so an als wen du mit einem Resourcen-Editor die Listbox da rein gesetzt hast. Aber Ich kann mir beim bestenn Willen nicht Vorstellen das deine IDE dir dann die ID nicht anzeigt oder so. Tut mir Leid aber wenn dann solltest du dich mal in deine IDE einarbeiten oder ich hab es immer noch nicht Verstanden 😃 😕

    MfG schirrmie



  • schirrmie. schrieb:

    Hmm ich kenne mich mit den Borland nicht aus. Aber das hört sich so an als wen du mit einem Resourcen-Editor die Listbox da rein gesetzt hast. Aber Ich kann mir beim bestenn Willen nicht Vorstellen das deine IDE dir dann die ID nicht anzeigt oder so. Tut mir Leid aber wenn dann solltest du dich mal in deine IDE einarbeiten oder ich hab es immer noch nicht Verstanden 😃 😕

    MfG schirrmie

    Dem kann ich nur zustimmen!



  • Nee, ich hab die ListBox ganz normal mit dem C++ Builder reingehauen. Und der C++ Builder zeigt einfach keine IDs an deswegen frag ich ja nach Funktionen die das machen ... oder irgendwas anderem was mir die IDs anzeigt!

    Habe die ganze Geschichte jetzt doch mit FindFirstFile() und FindNextFile() gemacht. Aber wenn da noch was kommt, dann wär' das trotzdem schön^^.

    MfG



  • dust schrieb:

    Habe die ganze Geschichte jetzt doch mit FindFirstFile() und FIndNextFile gemacht.

    😕

    Wenn du die Dateien mit FindFirstFile/FindNextFile raussuchst, kannst du deren Namen _doch_ in die Listbox schreiben?? Oder hab ich da was völlig falsch verstanden?



  • Hab ich doch schon längst gemacht ... das Problem ist gelöst ... mich hätte halt nur interessiert, ob es mit der anderen Methode besser geht ...

    mfg


Anmelden zum Antworten