WndProc in Klasse! Instanzen Teilen sich eine WndProc! HELP!



  • Ja, ich meinte std::map, ich dachte, das wär' klar. Wenn Du's kennst, um so besser. 🙂

    bzgl. der Frames: So dürfte in einem HTML-Forum klar sein, was Du meinst. Und unter Windows bzw. GUI-Toolkits spricht man da eher von SplitterWindows, soweit ich weiß.



  • mantiz schrieb:

    Ja, ich meinte std::map, ich dachte, das wär' klar. Wenn Du's kennst, um so besser. 🙂

    Siehste um ne std::map habe ich dort bei dir nicht gefunden



  • mantiz schrieb:

    Wenn Du in Windows ein Fenster erstellst, so kannst Du jedem Fenster benutzerdefinierte Daten mitgeben. Per Default sind glaube ich immer 32 Bit dafür reserviert. Dieser Speicher ist ideal, um einen Zeiger zu übergeben, der auf 32-Bit-Systemen genau 32 Bit benötigt.

    Für Zeiger sollte man aber besser GetWindowLongPtr/SetWindowLongPtr nehmen.



  • groovemaster schrieb:

    mantiz schrieb:

    Wenn Du in Windows ein Fenster erstellst, so kannst Du jedem Fenster benutzerdefinierte Daten mitgeben. Per Default sind glaube ich immer 32 Bit dafür reserviert. Dieser Speicher ist ideal, um einen Zeiger zu übergeben, der auf 32-Bit-Systemen genau 32 Bit benötigt.

    Für Zeiger sollte man aber besser GetWindowLongPtr/SetWindowLongPtr nehmen.

    grund?



  • Jo, hast Recht, hatte ich noch gar nicht drüber nachgedacht, werd' ich dann wohl bei mir auch so einbauen. 🙂

    MSDN schrieb:

    If you are retrieving a pointer or a handle, this function supersedes the GetWindowLong function. (Pointers and handles are 32 bits on 32-bit Microsoft Windows and 64 bits on 64-bit Windows.) To write code that is compatible with both 32-bit and 64-bit versions of Windows, use GetWindowLongPtr.

    Get-/SetWindowLong arbeiten wohl immer nur mit 32 Bit.



  • Weil die Funktionen genau dafür da sind. Damit hat man zB bessere 64 Bit Portabilität.



  • groovemaster schrieb:

    Weil die Funktionen genau dafür da sind. Damit hat man zB bessere 64 Bit Portabilität.

    Wo sollen der unterscheid zwischen 32 und 64 bit sein? BIsher habe ich dort keinen gesehen. Und kommt mir jetzt bitte nicht mit diesen Amenmärchen von Speed das 64Bit CPUs besser mit 64Bit programmen arbeiten können.



  • Lies Dir nochmal durch, was ich aus dem MSDN zitiert habe. Auf 64-Bit-Windows sind Pointer und Handle 64-Bit groß, was bedeutet, dass Du mit GetWindowLong nur die unteren 32 Bit des Zeigers/Handles bekommst, und somit der Zeiger/Handle nicht stimmt. Hab' zwar noch keine Erfahrung mit 64-Bit-Systemen, aber wenn man evtl. Probleme so einfach umgehen kann, dann sollte man das auch tun.



  • aösdlfjk schrieb:

    Wo sollen der unterscheid zwischen 32 und 64 bit sein?

    ZB sind Zeiger unter Win32 32 Bit gross, unter Win64 64 Bit.



  • hi leute,

    schaut euch ma an wie der majestro das gelöst hat:

    http://blogs.msdn.com/oldnewthing/archive/2005/04/22/410773.aspx



  • Jo, kommt mir bekannt vor. 🙂


Anmelden zum Antworten