CREATESTRUCT nachträglich füllen?



  • Hi,

    beim Subclassing bekommt man ja bekanntermaßen nicht die Nachricht WM_CREATE bzw. WM_NCCREATE, da man ja erst das Subclassing durchführen kann, nachdem das Fenster erstellt wurde. Daher wird man diese Nachrichten leider nicht mehr bekommen 😞

    Ich benötige jedoch für ein paar Stellen eine gefüllte CREATESTRUCT-Struktur.

    Jetzt dachte ich, CreateWindowEx könnte diese Struktur füllen, doch dem war nicht so. Also habe ich in der MSDN weiter nachgeforscht und gehofft es gäbe eine Nachricht für GetWindowLongPtr, doch dem war leider auch nicht so. 😞

    Wie kann ich diese Struktur füllen? Ob dies nun beim Aufruf von CreateWindow passiert, oder davor/danach ist eigentlich egal. Hauptsache ich habe später eine 🙂

    Schon mal vielen vielen Dank im voraus!



  • Da Du die Information bei WM_CREATE bekommst kannst Du die an der Stelle gleich speichern/merken natürlich auf statischen Speicher damits nicht verlorengeht wenn die Fensterprozedur verlassen wird.

    http://www.win-api.de/tutorials.php?tutid=12



  • also leg ne statische Variable des Types CREATSTRUCT an und zieh es beim
    Aufkommen der Nachricht WM_CREAT auf diese Variable



  • Ich zittiere mich mal selbst:

    mummini schrieb:

    beim Subclassing bekommt man ja bekanntermaßen nicht die Nachricht WM_CREATE bzw. WM_NCCREATE, da man ja erst das Subclassing durchführen kann, nachdem das Fenster erstellt wurde. Daher wird man diese Nachrichten leider nicht mehr bekommen 😞

    Sorry aber dein Ansatz hilft mir leider gar nicht. Wie soll ich denn bei Subclassing WM_CREATE bekommen?!



  • p.s.: Das ist Subclassing:
    http://www.winapi.net/index.php?inhalt=s27


  • Mod

    Aber für was brauchst Du denn diese CREATSTRUCT Struktur später? Alled Werte die da drinne stehen kannst Du doch selbst ermitteln!

    Was hast Du denn vor?



  • Wenn du unbedingt WM_CREATE bekommen willst dann mach Superclassing.



  • -.- schrieb:

    Wenn du unbedingt WM_CREATE bekommen willst dann mach Superclassing.

    wie geht das?!



  • Wenn du wirklich willst, dass dir geholfen wird, dann beantworte alle Fragen. Auch die von Martin Richter ;o)



  • mummini schrieb:

    -.- schrieb:

    Wenn du unbedingt WM_CREATE bekommen willst dann mach Superclassing.

    wie geht das?!

    google.



  • WebFritzi schrieb:

    Wenn du wirklich willst, dass dir geholfen wird, dann beantworte alle Fragen. Auch die von Martin Richter ;o)

    Es ist keinem geholfen, wenn man solche Antworten bekommt. Und die letzte von l-o-c-h (fehlt da nicht ein Präfix :D) ist die überqualifizierteste überhaupt. Ich würde nicht hier im Forum fragen, wenn ich das Problem durch Google gelöst bekomme.

    mummini möchte wissen, wie man eine komplette Struktur für ein erstelltes Windowobjekt bekommt. Durch Code - denn Subclassing ist ein Fremdwort für mummini, wie man sieht.

    Wofür man es braucht ist doch egal, denn man kann bei WM_CREATE immer diese Struktur auslesen.



  • Die Ausgangsfrage war schon mal völliger Quatsch. CREATESTRUCT ist nicht mit einem Fenster assoziert also wie soll man sie nachträglich anfüllen, häh?? Lern die Grundlagen, bevor du es dir anmaßt hier etablierte User wie WebFritzi zu kritisieren.



  • Ranner schrieb:

    Die Ausgangsfrage war schon mal völliger Quatsch. CREATESTRUCT ist nicht mit einem Fenster assoziert also wie soll man sie nachträglich anfüllen, häh?? Lern die Grundlagen, bevor du es dir anmaßt hier etablierte User wie WebFritzi zu kritisieren.

    Weshalb frage ich euch dann? Wenn ich es wüsste, wäre mein Anliegen der Forumsanfrage nicht notwendig. Warum nachträglich anfüllen, lies mal genau: Eine gefüllte Struct AUSLESEN! Nicht manuell BEFÜLLEN.

    mummini will wahrscheinlich, genau so wie ich, die übergebenen Parameter auslesen. Und deshalb muss es die Möglichkeit geben, diese wieder auszulesen.



  • mummini hatte doch in diesem Thread schon geantwort. Irgendwie wurde das gelöscht. 😡 😡



  • l-o-c-h schrieb:

    mummini schrieb:

    -.- schrieb:

    Wenn du unbedingt WM_CREATE bekommen willst dann mach Superclassing.

    wie geht das?!

    google.

    Danke für die Anwort. Bin seit heute morgen am Suchen für dieses Problem. Rate mal womit.

    l-o-c-h schrieb:

    google.

    Richtig. Habe ich etwas gefunden? NEIN. Aber ich habe etwa 32x dieses Forum und diese tollen und nützlichen Antworten gefunden (vorsicht, zynismus). Wenn ihr alle so schlau seid, warum kann keiner auf die Frage so antworten, dass man die Antwort verwenden kann?

    Mir kommt besonders dieser Thread hier so vor, als ob 70% in DIESEM Post einfach nur so tun als hätten sie eine Ahnung um sich selbst gut zu fühlen, obwohl sich ihre Wissen zu diesem Bereich wahrscheinlich im negativen Bereich bewegt.

    l-o-c-h schrieb:

    google.

    Eine wunderbare Antwort. Meinst Du der Fragesteller ist nicht von selbst auch auf die Idee gekommen? Kannst Du ihn dann nicht einfach an Deinem Erfahrungsschatz teilhaben lassen und ihm vielleicht ein Stichwort geben, nach dem er suchen kann oder vielleicht sogar mehrere? Oder vielleicht sogar einen Link?

    Seraphin schrieb:

    ... l-o-c-h (fehlt da nicht ein Präfix :D) ...

    Kommt mir auch so vor.



  • ----*-l-o-c-h schrieb:

    ...

    ah, ok. Ich tipp einfach zu langsam 🙄



  • biste blind? das suchwort für google ist in dem thread doch schon gefallen.



  • Ach ne, rate warum ich das 2. mal auf dieses Noob-Forum gestoßen bin.



  • Warum heißt das Teil wohl CREATESTRUCT 🙄

    Außerdem hat dir Martin Richter die Antwort schon vor Stunden gegeben 🙄



  • Ranner schrieb:

    Warum heißt das Teil wohl CREATESTRUCT 🙄

    Außerdem hat dir Martin Richter die Antwort schon vor Stunden gegeben 🙄

    Genau, und dieses soll wieder ausgelesen werden, nach der Creation


Anmelden zum Antworten