| |
|
|
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. |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
| Kann dir como sólo voll zustimmen, Franco. |
|
|
| |
|
|
|
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.... |
|
|
| |
|
|
|
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 ▲ |
|
|
|