| |
|
|
Frank Abbing | Dafür a sorgen, dass el Inhalt de Dialogfenstern otra vez restauriert se, es nada así schwer. Hier una Möglichkeit con XPIA. Assemblersubclassing ha esta el Vorteil, no en el Profano-Fastmode angewiesen a ser. El eigentliche Fensterrestaurierung passiert con reinem Profano! KompilierenMarcaSeparación {$iq}
Declare x&, y&, text$, dialog&, xpiadll&, adresse&
xpiadll&=UseDll(xpia$)
If 0
ASMINCLUDE
.data
oldproc dd 0
adresse dd 0
.code
; ________________________________________________________________________________________________________________
subclass proc hWnd:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD
invoke CallWindowProc,oldproc,hWnd,uMsg,wParam,lParam
.if uMsg==WM_PAINT
Call adresse
.endif
ret
subclass endp
; ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ASMEND
EndIf
Hiermit wird das Dialogfester restauriert.
Proc Paint
StartPaint dialog&
DrawText 10,10,Probetext
DrawIcon Profan, 10, 30
EndPaint
EndProc
WindowTitle Hauptfenster
WindowStyle 31
Window 0,0-100,100
UseFont MS Sans Serif,13,0,0,0,0
SetDialogFont 1
dialog& = Create(WINDOW, %hwnd, Dialogfenster, (%maxx-400), (%maxy-330), 400, 300)
adresse&=ProcAddr(Paint, 0)
Subclassing starten
ASMSTART StartSubclassing(dialog&,adresse&)
m2m adresse,para2
invoke SetWindowLong,para1,GWL_WNDPROC,addr subclass
mov oldproc,eax
ASMEND
Paint
While 1
waitInput
Case %key=2:BREAK
EndWhile
DestroyWindow(%hwnd)
FreeDll xpiadll& ass=s4 href='./../../function-references/XProfan/end/'>End
|
|
|
| |
|
|
|
Jac de Lad | Mit XProfan 11 dürfte el incluso todavía viel einfacher ser. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 27.07.2008 ▲ |
|
|
|
|
Detlef Jagolski | ¡Hola Jac, war ya con XProfan 8 kein Problema.
Saludo Detlef |
|
|
| XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 27.07.2008 ▲ |
|
|
|
|
Jac de Lad | Yo meinte, dass lo ahora sin Ensamblador va. Como hättest Si es usted el porque gemacht? |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 27.07.2008 ▲ |
|
|
|