| |
|
|
| |
|
| |
|
|
|
| |
|
| |
|
|
|
RGH | iF
Bei diesem Beispiel verstehe ich nicht weshalb wParam bei mir immer NULL anzeigt.
Versuche es im &sLParam und &sWParam.
&LParam und &WParam (und all die anderen Systmvariablen, die sich auf Messages beziehen) werden erst in der eigentlichen Fensterprozedur gesetzt.
In der SUBCLASSPROC gelten daher die Systemvariablen &sWnd, %sMessage, &sLParamund &sWParam.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 24.01.2008 ▲ |
|
|
|
|
| |
|
| |
|
|
|
| |
|
| |
|
|
|
RGH | iF
Das mit dem Parameters würde nur Zeit kosten: die vier Werte auf den Parameterstack schieben, damit sie von demselben wieder gelesen werden können, anlegen von vier Variablen, ... Und in der SubClassing-Prozedur wollen wir in der Regel besonders fix sein. ;)
Den Rest könntest Du, unter Nutzung der genannten Systemvariablen, ja so schreiben ... nur würde XProfan nicht erkennen, daß Du bereits eine Message bearbeitet hast und die original Fensterprozedur anschließend aufrufen. Das ist ja der tiefere Sinn der Funktion SubClassMessage: Diese setzt beii TRUE ein Flag, daß die augenblickliche Message bereits bearbeitet wurde und ruft dann eben vor Verlassen nicht mehr die original Fensterprozedur auf. Auf diese Weise kannst Du beides: Dich im Subclassing vor die Original Windowsprozedur klemmen oder Deinen Code anstelle dieser ausführen lassen. |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 24.01.2008 ▲ |
|
|
|
|
| Das habe ich geahnt und deshalb so vorsichtig gefragt um jetzt mit der Ideenkeule zu kommen. (Das mit den Parametern ist einleuchtend.)
Und zwar:
Mit einer kleinen Änderung könnte das Ganze noch deutlich präziser und verständlicher geschehen - Du bräuchtest dann vlt. auch kein solch Flag mehr setzen: Kümmere Dich nicht darum die alte wProc aufzurufen - sondern belasse die Entscheidung beim Programmierer. Hierbei ergäben sich nämlich viel mehr Möglichkeiten! Erfinde noch ein Schlüsselwort zum Aufruf der vorherigen/alten wProc welches der Programmierer selbst setzen kann.
Somit müsste durch subClassMessage kein Flag gesetzt werden, der Programmierer entscheidet ob er orignalSubClassProc aufruft - oder nicht. Das wiederum (da es ja möglichst fix gehen sollte in der subClassProc) gibt auch die Möglichkeit einer besseren select Struktur, statt eines if-konstruktes.
Übersehe ich dabei etwas? |
|
|
| |
|
|