Kurze Frage zu HWND



  • Hallo !

    Wie der Nick schon sagt, ist das Neuland für mich.

    Ich bin gearde dabei ein Programm zu schreiben welches viele Editfelder besitzt, jetzt bin ich mir aber nicht sicher ob das richtig ist, so wie ich das mache.

    Angenommen es sind 15 Editfelder, dann habe ichn 15 HWND in der WndProc, damit ich mit den Editfeldern kommunizieren kann. Ist das so richtig oder gibts da einen anderen Weg ?? Wenn ich mir "aufwändigere" GUI's ansehe, müssen die doch eine Unmenge an HWND's haben?! 😕

    Verwirrt mich etwas, aber wenn mir jemand sagen würde dass man das so macht wär ich schon zufrieden 🙂



  • Das HWND ist eine Kennummer, die Windows vergibt, um die Fenster anzusprechen und Nachrichten entsprechend einzuordnen. Folglich muß jedes Fenster, das mit CreateWindows(Ex) erstellt wird, ein eindeutiges HWND haben. Wie Du die Handles verwaltest (eigenen Namen für jedes Handle, Array oder verkettete Liste) ist Deine Sache.

    Was meinst Du mit "Aufwendigere GUIs"? Es gibt natürlich auch andere Methoden zur Fenstererstellung, z. B. Resourcen. Dann werden die Fenster über IDs angesprochen.



  • Danke für die Erklärung.

    Mit "aufwändigere GUI's" meinte ich einfach nur Programme wo man sieht, dass sie viele HWND's benutzne, z.B. viele Buttons, Texte (braucht man ja auch ein Static Window), Groupboxes etc.

    Und schließen muss man diese HWND's aber nicht selber, so wie bei HANDLE -> CloseHandle(HANDLE) ??
    Nur das Hauptfenster (also ParentFenster) mit DestroyWindow() beenden reicht doch oder ?

    Das war eigentlich auch schon alles was ich wissen wollte (bis jetz :D)

    danke



  • Hallo,

    Neuneuling schrieb:

    Und schließen muss man diese HWND's aber nicht selber, so wie bei HANDLE -> CloseHandle(HANDLE) ??

    Nein, HWNDs muss man nicht schliessen, durch DestroyWindow wird ein solches HWND einfach nur ungültig (wenn man danach noch darauf zugreift -> schlecht gelaufen)

    Neuneuling schrieb:

    Nur das Hauptfenster (also ParentFenster) mit DestroyWindow() beenden reicht doch oder ?

    DestroyWindow für einen Parent führt auch zur Zerstörung der Children.

    MfG,

    Probe-Nutzer



  • Danke !

    [quote="Probe-Nutzer]DestroyWindow für einen Parent führt auch zur Zerstörung der Children[/quote]

    Genau, ich meinte ich führe DestroyWindow aus, wenn das Programm beendet werden soll.

    Dankeschön an die Community 🙂


Anmelden zum Antworten