Español
Foro

Farben para Controls ändern

 

Peter
Mallow
¡Hola,
es z.B. posible el Hintergrundsfarbe uno Listbox a ändern sin zusätzliche DLL?
En una RichEdit brauche Yo sólo una Message enviar, sin embargo para Listboxen kann Yo no Message encontrar.
Otro Möglichkeit wäre eventuell con uno Callback-Routiene como en el Ejemplo en el Profanhilfe beschrieben es (Listing: Callback (Textfeldfarbe))

Nur schaffe Yo no esta Code para una Listbox umzuschreiben.

Kann me alguien Ansätze liefern? Aunque si ligeramente con uno Message va, entonces me más bien
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
03.10.2005  
 



Búsqueda => Codes... => Codesnippets-Finder => Farbige...

Wofür Yo el Teil geproggt...?

Salve.
 
03.10.2005  
 




Peter
Mallow
Sorry, como Yo no gesucht.

Aber el beispiel funktioniert por desgracia, no.
Yo sehe no unterschiede:
KompilierenMarcaSeparación
 {$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
Mein Fehler funktioniert doch, si yo el Adresse para Hintergrundsbild ändere.

Aber gehts tal vez auch einfacher? Möchte sólo el Farbe des Hintergrundes (schwarz) y el Schriftfarbe ($FFFFFF) uno Listbox ändern.
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
16.10.2005  
 




Frank
Abbing
¡Hola Peter,

sin dir a Nahe treten a querer, me está aufgefallen, dass du dir gerne Codes de otro Leuten redactar lässt...
Tomar dir doch veces el Code de Andreas antes y versuche ihn selber abzuspecken. Beschäftige dich así, así lang es él sí no. Usted wirst merken, el lehrt ungemein. Jedenfalls mehr, como se ständig Codes vorsetzten que se.


Für dein Problema hay no einfache Solución, salvo el Subclassing. Oder du nimmst Sebastians SKControl.dll. El arbeitet auch después de diesem Principio.
 
16.10.2005  
 



Kann dir como sólo voll zustimmen, Franco.
 
17.10.2005  
 




Frank
Abbing
Gracias Andreas!

Peter, du könntest auch una Listview uso. Dort son el Farben ajustable y du kannst lo así ausehen dejar como una Listbox. Und lo son incluso una tolle Dll, a Sache todavía einfacher a gestalten....
 
17.10.2005  
 




Peter
Mallow
@Franco
ehrlich dijo hast du ya bastante Aber Yo versuche siempre el Codes a verstehen.

Posesiones mich ya veces intenta con el Code auseinanderzusetzten, doch el war algo a viel neues en una vez. Aber Yo voluntad mich así nocheinmal genauer beschäftigen, si yo veces otra vez viel Tiempo habe.
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
19.10.2005  
 



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

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