Mehrere Controls subclassen - "alte" Fensterprozedur



  • Hi,

    habe auf einer Dialogbox mehrere Edit-Controls und möchte diese subclassen.

    Meine Frage:
    Ist der Zeiger auf die original WndProc (den ich holen muss, bevor ich auf die neue setze) für alle Edit-Controls der selbe, oder muss ich den Zeiger für jedes Control einzeln in einer Variablen ablegen?

    Habe es bislang über die letzte Variante gelöst.

    Wäre nett, wenn mir hierzu jemand Links mit konkreten Informationen posten könnte. In der MSDN habe ich hierzu bisher nichts finden können - oder ich bin einfach zu blind gewesen.



  • Wie wärs, wenn Du die erhaltenen Zeiger einfach mal vergleichst?



  • Auf die Idee wäre ich nie gekommen (leichter Anfall von Sarkasmus 😉 )

    Sie waren in dem Fall identisch.
    Aber ist das immer so? - auch bei allen Windowsversionen?

    Deshalb schrieb ich ja auch

    Wäre nett, wenn mir hierzu jemand Links mit konkreten Informationen posten könnte.



  • Die WndProc wird über die Fensterklasse festgelegt. Da all deine Edit-Controls dieselbe Fensterklasse benutzen haben sie auch dieselbe WndProc, es sei denn jemand hat nachträglich per SetClassLongPtr am Edit-Control rumgepfuscht.


  • Mod

    Eigentlich ja. Alte MFC Versionen haben die alte WndProc statisch gespeichert in der Klasse.

    Aber!!! Man kann ganz schnellmal ein Addin schreiben oder eine interne Funktion die beim Erzeugen eines Fensters die Fensterklasse tauscht. Ich würde niemals Code schreiben, der sich darauf verlässt.


Anmelden zum Antworten