Français
Forum

Farben pour Controls changement

 

Peter
Mallow
Salut,
ist es z.B. possible qui Hintergrundsfarbe einer Listbox trop changement sans zusätzliche DLL?
chez une RichEdit brauche je seulement une Message envoyons, cependant pour Listboxen peux je aucun Message trouver.
une autre Possibilité wäre eventuell avec einer Callback-Routiene comme im Beispiel dans qui Profanhilfe beschrieben ist (Listing: Callback (Textfeldfarbe))

seulement schaffe je es pas cette Code pour une Listbox umzuschreiben.

peux mir quelqu'un Ansätze liefern? Allerdings si es léger avec einer Message allez, ensuite c'est moi cela lieber
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
03.10.2005  
 



cherche => Codes... => Codesnippets-Finder => Farbige...

Wofür habe je cela partie geproggt...?

Salve.
 
03.10.2005  
 




Peter
Mallow
Sorry, là habe je pas gesucht.

mais cela beispiel funktioniert malheureusement pas.
je vois aucun unterschiede:
KompilierenMarqueSéparation
 {$cleq}
###########################
Thema : Subclassing
###########################
Listbox mit Hintergrundbild
###########################
Andreas Miethe
Oktober 2003
###########################
 $H Windows.ph
 $H Structs.ph
 $H Messages.ph
Set(FastMode,1)

Proc Setcolor

    Parameters Wparam&,Col&

    If Brush&

        ~Deleteobject(Brush&)

    Endif

    Brush& = ~Createsolidbrush(Col&)
    Return Brush&

Endproc

Struct Ps = ~Paintstruct
Struct Rect = ~Rect
Declare Ende&,Listbox&,Oldlbproc&,Brush&
Declare Hdc&, Mdc&, M2dc&, Width&, Height&, Painting&
Declare Image&,Moldobject&,M2oldobject&,Hmbitmap&
Declare Ps#,Rect#
Dim Ps#,Ps
Dim Rect#,Rect

Proc Lbproc

    Declare Result&
    Parameters Wnd&, Msg&, Wparam&, Lparam&
    Result& = 0

    If Msg& = ~Wm_erasebkgnd

        Result& = 1

    Elseif Msg& = ~Wm_paint

        If Painting& = 0

            Painting& = 1
            Result& = ~Callwindowproc(Oldlbproc&, Wnd&, Msg&, M2dc&,Lparam&)
            ~Beginpaint(Wnd&, Ps#)
            ~Getclientrect(Listbox&,Rect#)
            ~Bitblt(M2dc&, Rect#.Left&,Rect#.Top&,Rect#.Right&,Rect#.Bottom&, Mdc&,Rect#.Left&,Rect#.Top&, ~Srcand)
            ~BitBlt(m2dc&, 0, 0, width&, height&, mDC&, 0, 0, ~SRCAND)
            Hdc& = ~Getdc(Wnd&)
            ~Bitblt(Hdc&, Rect#.Left&,Rect#.Top&,Rect#.Right&,Rect#.Bottom&, M2dc&,Rect#.Left&,Rect#.Top&, ~Srccopy)
            ~BitBlt(hdc&, 0, 0, width&, height&, m2DC&, 0, 0, ~SRCCOPY)
            ~Releasedc(Wnd&, Hdc&)
            ~Endpaint(Wnd&, Ps#)
            Painting& = 0

        Endif

    Else

        Result& = ~Callwindowproc(Oldlbproc&,Wnd&, Msg&, Wparam&, Lparam&)

    Endif

    Return Result&

Endproc

Cls ~Getsyscolor(~Color_btnface)
Image& = ~Loadimage(0,tile.bmp,0,640,480,$10)
Width& = 640
Height& = 480
Hdc& = ~Getdc(%Hwnd)
Mdc& = ~Createcompatibledc(%Hdc)
Moldobject& = ~Selectobject(Mdc&, Hmbitmap&)
Moldobject& = ~Selectobject(Mdc&, Image&)
M2dc& = ~Createcompatibledc(Hdc&)
Hmbitmap& = ~Createcompatiblebitmap(%Hdc,Width&,Height&)
M2oldobject& = ~Selectobject(M2dc&, Hmbitmap&)
~Releasedc(%Hwnd,Hdc&)
Clearlist
Addfiles *.*
Listbox& = Create(Listbox,%Hwnd,,0,0,0,0)
~Setwindowpos(Listbox&,0,10,10,300,292,~Swp_showwindow)
Movelisttolist(Listbox&)
~Sendmessage(Listbox&,~Wm_setfont,~Getstockobject(~Default_gui_font),0)
Oldlbproc& = ~Setwindowlong(Listbox&,~Gwl_wndproc, Procaddr(Lbproc,4))
Repaint
Usermessages ~Wm_close

Whilenot Ende&

    Waitinput

    If Getfocus(Listbox&)

        Sendmessage(Listbox&,~Wm_paint,0,0)

    Endif

    If %Umessage = ~Wm_close

        ~Deleteobject(Image&)
        Ende& = 1

    Endif

Wend

 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
03.10.2005  
 




Peter
Mallow
mon faute funktioniert doch, si je qui Adresse zum Hintergrundsbild ändere.

mais gehts peut-être aussi einfacher? voudrais seulement qui la couleur des Hintergrundes (noir) et qui Schriftfarbe ($FFFFFF) einer Listbox changement.
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
16.10.2005  
 




Frank
Abbing
allô Peter,

sans dir trop proche treten trop voulons, c'est moi aufgefallen, dass du dir volontiers Codes de anderen Leuten erstellen peut...
prends dir doch la fois den Code de Andreas avant et versuche ihn selber abzuspecken. Beschäftige toi avec cela, so long ist il oui pas. Du wirst merken, cela lehrt ungemein. Jedenfalls plus, comme sich ständig Codes vorsetzten trop laisser.


Pour dein Problem gibt es aucun simple Solution, ausser cela Subclassing. ou bien tu prends Sebastians SKControl.dll. qui arbeitet aussi pour diesem Prinzip.
 
16.10.2005  
 



peux dir là seulement voll zustimmen, Frank.
 
17.10.2005  
 




Frank
Abbing
merci Andreas!

Peter, du könntest aussi un Listview verwenden. là sommes qui Farben einstellbar et tu peux es so ausehen laisser comment une Listbox. et il y a sogar une tolle Dll, à l'affaire encore einfacher trop gestalten....
 
17.10.2005  
 




Peter
Mallow
@Frank
à vrai dire la hâte du déjà droite mais je versuche toujours qui Codes trop comprendre.

Habe mich déjà la fois versucht avec dem Code auseinanderzusetzten, doch cela était quelque chose trop viel nouveau sur einmal. mais je werde mich avec cela nocheinmal genauer beschäftigen, si je la fois wieder viel Zeit habe.
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
19.10.2005  
 



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.381 Views

Untitledvor 0 min.
H.Brill19.09.2023
Sven Bader06.08.2021
Peter Max Müller29.10.2017
Ernst04.05.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