Basisklassen-Aufrufe ...
-
Bei VC++ 6.0 und VS 2008 MFC, möchte ich lernen, Quelltext ohne
Benutzung von Assistenten zu schreiben. Bei bestimmten Event-Handlern
müssen Basisklassen-Aufrufe hinzugefügt werden, Wann ?
-
Also direkt bei Event-Handlern, wo du Einträge in die MessageMap machst, hast du keine Basisklassenmethode. Wenn du virtuelle Methoen aus CWnd usw. überschreibst, empfiehlt es sich eigentlic grundsätztlich immer die Basismethode vorher aufzurufen.
-
Grundsätzlichg sollte man auch bei allen ON_WM_... Message Map Einträgen die Basisklasse aufrufen.
Bei virtuellen Funktionen ist es an sich auch klar.Wenn ich jetzt so drüber nachdenke muss man es eigentlich immer machen, nur nicht bei ON_COMMAND / ON_UPDATE_... Handlern
-
Martin Richter schrieb:
Grundsätzlichg sollte man auch bei allen ON_WM_... Message Map Einträgen die Basisklasse aufrufen.
Bei virtuellen Funktionen ist es an sich auch klar.Wenn ich jetzt so drüber nachdenke muss man es eigentlich immer machen, nur nicht bei ON_COMMAND / ON_UPDATE_... Handlern
Ausnahmen bestätigen die Regel.

Wenn man z.B. CMyView::PostNcDestroy überschreibt, weil man ein abgeleitetes CView auf dem Stack und nicht auf dem Heap erzeugt, dann wäre ein Aufruf von CView::PostNcDestroy() eher kontraproduktiv.
-
sri schrieb:
Ausnahmen bestätigen die Regel.

Jo! Sie machen den eigentlichen Spaß am Programmieren aus...

-
Frage, Nicht nur wann werden Basisklasse-Aufrufe benötigt, sodern was
bezwecken sie. Wenn man in einer CEditView-Klasse OnKeyDown überschreibt, dann
ist es klar das ein Basisklassen-Aufruf benötigt wird, es muss ja schliesslich
Text geschrieben werden. Aber was bringt es, wenn OnLButtonDown ein Basis-
klassen-Aufruf hat ?
-
Na denk doch mal nach:
Der Mausklick wird behandelt und ein Edit-Control würde damit das Auswählen eines Textes über die Maus behandeln. Oder bei einem List-Ctrl, markieren + Drag&Drop.