Italia
Fonte/ Codesnippets

Hintergrundbild Listbox

 

KompilierenMarkierenSeparieren
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Listbox mit Hintergrundbild
###########################
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

 
16.07.2007  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.737 Views

Untitledvor 0 min.
RudiB.31.03.2020
Jochen Roxlau09.04.2015
Peter Max Müller06.10.2014
Bernd Lies10.06.2014
Di più...

Themeninformationen

Dieses Thema hat 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie