Español
Fuente/ Codesnippets

Farbig Hintergrund Listbox Texturierter

 
Texturierter Listbox Hintergrund Farbig de Andreas Miethe:
KompilierenMarcaSeparación
###########################
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& = CreateListBox(%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

Salve, IF.
 
01.07.2005  
 



Zum Quelltext


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

2.840 Views

Untitledvor 0 min.
RudiB.11.09.2022
Sven Bader17.08.2021
Member 007717919.10.2018
Ernst23.07.2016
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

iF (1x)


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