Español
Foro

Listing: Callback (Textfeldfarbe) de el Ayuda de XProfan

 

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
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
19.06.2008  
 




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!
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
20.06.2008  
 




Detlef
Jagolski
¡Hola Andreas,

qué se Yo sagen: Gracias

Posesiones ahora Su Ejemplo en Editar erweitert. Como Todavía una Problema!
KompilierenMarcaSeparación
MESSAGES.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  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.255 Views

Untitledvor 0 min.
H.Brill05.02.2022
rafl17.09.2017
Ernst02.03.2015
Detlef Jagolski06.04.2014
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie