| |
|
|
Detlef Jagolski | ¡Hola,
habe el Ejemplo de el Ayuda de XProfan 10 Umgebaut con el neuen Características de XProfan 11.
Tiene uno de una Concepto por qué el no Klappt?
Saludo
Detlef KompilierenMarcaSeparación-Begin-----------------------------------------------------------------
-HeaderFiles---------------------------------------------------------
MESSAGES.PH
WINDOWS.PH
-Variables Declaration-----------------------------------------------
Declare Ende%, OldWndProc&, hButton%
Declare hText1%, TextBk1&, hText2%, TextBk2&, hText3%, TextBk3&
-CallBack Routine----------------------------------------------------
SubClassProc
If SubClassMessage(%hwnd, ~WM_CTLCOLORSTATIC)
-Fuer Text1 Farbe setzen---------------------------------------
If &sLParam = hText1%
~SetBkMode(&sWParam, ~TRANSPARENT)
~SetTextColor(&sWParam, @RGB($FF, $00, $00)) -Rot-----------
Return TextBk1&
Set(WinProc,1)
-Fuer Text2 Farbe setzen---------------------------------------
ElseIf &sLParam = hText2%
~SetBkMode(&sWParam, ~TRANSPARENT)
~SetTextColor(&sWParam, @RGB($00, $00, $FF)) -Blau----------
Return TextBk2&
Set(WinProc,1)
-Fuer Text3 Farbe setzen---------------------------------------
ElseIf &sLParam = hText3%
~SetBkMode(&sWParam, ~TRANSPARENT)
~SetTextColor(&sWParam, @RGB($00, $FF, $00)) -Gruen---------
Return TextBk3&
Set(WinProc,1)
EndIf
Set(WinProc,0)
EndIf
EndProc
-Main----------------------------------------------------------------
-Hintergrundfarben festlegen---------------------------------------
TextBk1& = ~CreateSolidBrush(@RGB($00, $FF, $FF)) -Cyan----------
TextBk2& = ~CreateSolidBrush(@RGB($FF, $FF, $00)) -Gelb----------
TextBk3& = ~CreateSolidBrush(@RGB($FF, $00, $FF)) -Magenta-------
-Erweitertes MessageHandling abschalten----------------------------
Set(FastMode, 1)
-Fenster oeffnen---------------------------------------------------
Window 0, 0 - 640, 480
-ProgramMainRoutine mit CallBack umleiten auf eigene---------------
Set(SubClassMode,1)
SubClass %hWnd, 1
-GUI aufbauen------------------------------------------------------
hButton% = @Create(Button, %hWnd, Ende, 10, 10, 100, 24)
-Textfelder------------------------------------------------------
hText1% = @Create(Text, %hWnd, Farbiger Text1, 10, 50, 110, 18)
hText2% = @Create(Text, %hWnd, Farbiger Text2, 10, 70, 110, 18)
hText3% = @Create(Text, %hWnd, Farbiger Text3, 10, 90, 110, 18)
-Dialog-Schleife---------------------------------------------------
Clear Ende%
WhileNot Ende%
WaitInput
If %Key = 2
Ende% = 1
ElseIf @Clicked(hButton%)
Ende% = 1
EndIf
EndWhile
-Fuellmuster freigeben---------------------------------------------
~DeleteObject(TextBk1&)
~DeleteObject(TextBk2&)
~DeleteObject(TextBk3&)
-Urspruengliche ProgramMainRoutine wieder herstellen---------------
SubClass %HWnd, 0
-End------------------------------------------------------------------< lass=s2>-
End
|
|
|
| XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 19.06.2008 ▲ |
|
|
|
|
Jac de Lad | Nein, Yo tener desafortunadamente ni idea. |
|
|
| 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 | 19.06.2008 ▲ |
|
|
|
|
Sebastian König | Detlef Jagolski
¡Hola, habe el Ejemplo de el Ayuda de XProfan 10 Umgebaut con el neuen Características de XProfan 11.
Tiene uno de una Concepto por qué el no Klappt?
¡Hola Detlef,
Usted hast en el Code el Conjunto(WinProc,1) jeweils después de el volver-Anweisungen posición - el Code se also niemals erreicht. Das Conjunto(WinProc,0) bastante al Ende Es el richtige Concepto - sólo se lo como en el relevanten Fällen, i.e. si WM_CTLCOLORSTATIC para uno el drei Textfelder gesendet wurde, auch no erreicht. Korrekt wäre una Conjunto(WinProc,0) antes cada volver.
Damit funktioniert lo entonces zumindest entonces, si el Ventana kurz de el sichtbaren Zona y direkt otra vez hineinschiebst o. el Größe la ventana änderst. Dieses Comportamiento entsteht meiner Auffassung después de de el Zusammenspiel folgender Punkte:
a) Windows envía WM_CTLCOLORSTATIC sólo entonces, si la Objetos redibujar voluntad mussen b) el SubClassProc se en XProfan sólo während uno WaitInputs aufgerufen
Un Solución dieses Problema Yo desafortunadamente todavía no...
MfG
Sebastian |
|
|
| |
|
|
|
Andreas Miethe
| Mit una pequeño Trick va el ya. Usted musst Su Ventana para Neuzeichnen zwingen. KompilierenMarcaSeparación $H messages.ph
$H windows.ph
declare Text&,IsPainted&
declare ende&
declare brush&
Proc SetColor
Parameters Textcolor&,BackColor&,wParam&
If Brush&
~DeleteObject(Brush&)
Endif
Brush& = ~CreateSolidBrush(BackColor&)
~SetBkMode(wParam&, ~TRANSPARENT)
~SelectObject(wParam&,Brush&)
~SetTextColor(wParam&,Textcolor&)
return Brush&
Endproc
SubClassProc
If SubClassMessage(%hWnd, ~WM_CTLCOLORSTATIC)
Set(WinProc, 0)
Return SetColor($FF00FF,$FFFF00,&swParam)
elseIf SubClassMessage(%hwnd,~WM_TIMER)
Set(WinProc, 0)
If IsPainted& = 0
Repaint
~KillTimer(%hwnd,1)
IsPainted& = 1
Endif
EndIf
EndProc
cls
Set(SubClassMode,1)
SubClass %HWnd, 1
Text& = Createtext(%hwnd,Farbe,10,10,120,24)
~settimer(%hwnd,1,1,0)
whilenot ende&
waitinput
endwhile
Subclassing wieder ausschalten
SubClass %HWnd, 0
~DeleteObject(Brush&)
href='./../../references-fonction/XProfan/end/'>end
|
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 20.06.2008 ▲ |
|
|
|
|
Sebastian König | Andreas Miethe
Mit una pequeño Trick va el ya. Usted musst Su Ventana para Neuzeichnen zwingen. (...)
Ah, muy trickreich - no schlecht! |
|
|
| |
|
|
|
Detlef Jagolski | ¡Hola Andreas,
qué se Yo sagen: Gracias
Posesiones ahora Su Ejemplo en Editar erweitert. Como Todavía una Problema! KompilierenMarcaSeparaciónMESSAGES.PH
WINDOWS.PH
declare Text&,Edit&,IsPainted&
declare ende&
declare brush&
Proc SetColor
Parameters Textcolor&,BackColor&,wParam&
If Brush&
~DeleteObject(Brush&)
Endif
Brush& = ~CreateSolidBrush(BackColor&)
~SetBkMode(wParam&, ~TRANSPARENT)
~SelectObject(wParam&,Brush&)
~SetTextColor(wParam&,Textcolor&)
return Brush&
Endproc
SubClassProc
If SubClassMessage(%hWnd, ~WM_CTLCOLORSTATIC)
Set(WinProc, 0)
Return SetColor($FF00FF,$FFFF00,&swParam)
elseIf SubClassMessage(%hwnd, ~WM_CTLCOLOREDIT)
Set(WinProc, 0)
Return SetColor($FF00FF,$FFFF00,&swParam)
elseIf SubClassMessage(%hwnd,~WM_TIMER)
Set(WinProc, 0)
If IsPainted& = 0
Repaint
~KillTimer(%hwnd,1)
IsPainted& = 1
Endif
EndIf
EndProc
cls
Set(SubClassMode,1)
SubClass %HWnd, 1
Text& = Createtext(%hwnd,Farbe,10,10,120,24)
Edit& = Createedit(%hwnd,Farbe,10,60,120,24)
~settimer(%hwnd,1,1,0)
whilenot ende&
waitinput
endwhile
Subclassing wieder ausschalten
SubClass %HWnd, 0
~DeleteObject(Brush&) ass=s4 href='./../../references-fonction/XProfan/end/'>end
Jetzt mein Problema, si yo el Kontextmenü öffne oder si yo Edit con ratón verlasse es el XP Stil weg.
Hast Usted todavía una Trick?
Saludo
Detlef |
|
|
| XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 20.06.2008 ▲ |
|
|
|
|
Andreas Miethe
| Yo fürchte el no es bastante así simplemente voluntad. Dazu muss uno se tiefergehend con Themes beschäftigen.
Mirar hier:
[...] |
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 20.06.2008 ▲ |
|
|
|
|
Detlef Jagolski | ¡Hola Andreas,
vielen Dank.
Saludo
Detlef |
|
|
| XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 20.06.2008 ▲ |
|
|
|