Sollten wir unsubclass Code während der Dialog Zerstörung hinzufügen?
Frage
Was passiert, wenn wir einen Windows-Dialog und Dialogunterklasse geschlossen?
Szenario ist, dass ich einen Dialog bin Subklassen und Anwendung viele Instanzen dieser Dialog starten können.
Ist es notwendig, unsubclassing Code für alle Dialoge in thier Zerstörung Logik.
hinzufügenIch denke, wenn Dialoge geschlossen bekommen es nicht notwendig ist, sie unsubclass weil Dialoge bereits zerstört.
Lösung
Wenn Sie Instanz Subklassifizieren (SetWindowLongPtr) verwenden, da dann, wenn das Fenster aufgerissen wird nach unten ist es egal, welche WNDPROC ist es mit -. Es geht um irgendwie zu verschwinden
Wenn Sie globale Subklassifizieren verwenden (SetClassLongPtr), dann wäre es wahrscheinlich eine gute Idee, die Unterklasse zu entfernen, sobald die letzte Unterklasse Fenster geschlossen ist (dh nicht pro Fenster), so dass alle zukünftigen Fenster mit dieser Klasse erstellt nicht bekommen subclassed -. es sei denn, das ist, was Sie wollen, natürlich
Andere Tipps
Sie sprechen gerade Win32 API Unter der Annahme, dann ja. Obwohl sich bewusst sein, dass, wenn Sie alle Ressourcen haben manuell Sie verwalten, müssen Sie sie in der WM_CLOSE Nachricht bis in Ordnung gebracht haben.