Français
Forum

Listing: Callback (Textfeldfarbe) aus qui Aider de XProfan

 

Detlef
Jagolski
Salut,

habe cela Beispiel aus qui Aider de XProfan 10 Umgebaut avec den neuen Funktionen de XProfan 11.

Hat einer une concept pourquoi cela pas Klappt?

Salut

Detlef
KompilierenMarqueSéparation
-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>- Fin
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
19.06.2008  
 




Jac
de
Lad
non, je hab malheureusement je n'en sais rien.
 
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
Salut,
habe cela Beispiel aus qui Aider de XProfan 10 Umgebaut avec den neuen Funktionen de XProfan 11.

Hat einer une concept pourquoi cela pas Klappt?

allô Detlef,

tu as dans dem Code cela Set(WinProc,1) jeweils pour den return-Anweisungen stehen - qui Code wird alors niemals erreicht. cela Set(WinProc,0) entier am Ende ist qui richtige concept - seulement wird es là dans den relevanten Fällen, i.e. si WM_CTLCOLORSTATIC pour eines qui trois Textfelder gesendet wurde, aussi pas erreicht. Korrekt wäre un Set(WinProc,0) avant chaque return.

avec cela funktioniert es ensuite zumindest ensuite, si Du cela la fenêtre kurz aus dem sichtbaren Bereich et direct wieder hineinschiebst bzw. qui Taille des Fensters änderst. cet Verhalten entsteht meiner Auffassung pour aus dem Zusammenspiel suivant Punkte:

a) Windows sendet WM_CTLCOLORSTATIC seulement ensuite, si le Objekte récente gezeichnet volonté mussen
b) qui SubClassProc wird dans XProfan seulement au cours de eines WaitInputs aufgerufen

une Solution pour cet Problem habe je malheureusement encore pas...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
19.06.2008  
 




Andreas
Miethe


avec einem kleinen Trick allez cela déjà.
Du musst Dein la fenêtre zum Neuzeichnen zwingen.
KompilierenMarqueSéparation
 $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
avec einem kleinen Trick allez cela déjà.
Du musst Dein la fenêtre zum Neuzeichnen zwingen.
(...)


Ah, très trickreich - pas mal!
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
20.06.2008  
 




Detlef
Jagolski
allô Andreas,

quoi soll je dire: merci

Habe maintenant Dein Beispiel sur Éditer erweitert. là habe je encore un Problem!
KompilierenMarqueSéparation
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

maintenant mon Problem, si je cela Kontextmenü ouvre ou bien si je cela Éditer avec qui souris verlasse ist qui XP Stil weg.

la hâte Du encore un Trick?

Salut

Detlef
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
20.06.2008  
 




Andreas
Miethe


je fürchte cela wird pas entier so simple volonté.
en supplément muss on sich tiefergehend avec Themes beschäftigen.

tiens ici:

[...] 
 
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
allô Andreas,

vielen Dank.

Salut

Detlef
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
20.06.2008  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.248 Views

Untitledvor 0 min.
H.Brill05.02.2022
rafl17.09.2017
Ernst02.03.2015
Detlef Jagolski06.04.2014
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie