Teksten op bmp achtergrond

Geef hier je beste Liberty BASIC tips door. (Hier geen hulp vragen)

Moderators: anthonio, Abcott

Teksten op bmp achtergrond

Berichtdoor Gordon » za aug 06, 2005 2:19 pm

Code: Selecteer alles
'galton1 Gordon

    nomainwin
    WindowWidth = 550
    WindowHeight = 410
    UpperLeftX=int((DisplayWidth-WindowWidth)/2)
    UpperLeftY=int((DisplayHeight-WindowHeight)/2)

    ForegroundColor$ = "blue"

    graphicbox #m.g,   0,   0, 550, 410
    button #m.b1,"Button",[b1Click], UL, 425,  16,  96,  25

    open "untitled" for window as #m
    #m.g, "down; fill blue; flush"
    #m, "font ms_sans_serif 10"
    #m, "trapclose [quit.main]"



    hDC=GetDC(hwnd(#m.g))
    call SetBkMode hDC,1
    call ReleaseDC hwnd(#m.g),hDC
    wait




[b1Click]

    #m.g, "place 30 30"
    #m.g, "color green"
    #m.g, "down"
    #m.g, "| GALTON'S machine"


    #m.g, "color blue"
    for t = 1 to 400
    gosub [pcirc]
    next t
    wait


[pcirc]
    for ti = 1 to 600 :next ti
    #m.g, "place ";t;" "; 80
    #m.g, "down"
    #m.g, "backcolor red"
    #m.g, "circlefilled 10"
    return


[quit.main]
    close #m
    END

Sub SetBkMode hDC, flag
'1=transparent
'2=opaque
CallDLL #gdi32, "SetBkMode",hDC As Ulong,_
flag As long, RESULT As long
End Sub

Function GetDC(hWnd)
CallDLL #user32, "GetDC",hWnd As Ulong,_
GetDC As Ulong
End Function

Sub ReleaseDC hWnd, hDC
CallDLL#user32,"ReleaseDC",hWnd As Ulong,_
hDC As Ulong,result As long
End Sub



Gordon

Met dank aan Janet.

Edit: De handles zijn in XP grotere getallen geworden (64 bits).
Long representeerd een te klein getal.
De long van de handles zijn nu gewijzigd in Ulong
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Berichtdoor Gordon » za dec 01, 2007 5:14 pm

Ik ben bezig mijn een Sinterklaas programma.
Ik wil mijn rijmpjes over het scherm laten scrollen.

Waarom (hoe) krijg ik het flikkeren hier weg?

Code: Selecteer alles
'moving text over a background

                nomainwin
                WindowWidth = 520
                WindowHeight = 520

                loadbmp "bg3", "bg3.bmp"
                open "Liberty moving text on background" for graphics_nsb as #1

                #1 "trapclose [quit]"
                #1 "down; background bg3; drawsprites"
                #1 "color black"

                hDC=GetDC(hwnd(#1))
                call SetBkMode hDC,1
                call ReleaseDC hwnd(#1),hDC

                open "testtext1.txt" for input as #2

                while eof(#2) = 0
                line input #2, text$
                text$ = "\"+text$
                text1$ = text1$ + text$
                wend
                close #2

                for y = 1 to 250 step 1
                                #1 "place 40 ";y
                                #1 text1$
                                call Pause3 50
                                #1 "drawsprites"
                next y

                wait

[quit]
                unloadbmp "bg3"
                close #1
                end



Sub SetBkMode hDC, flag
'1=transparent
'2=opaque
CallDLL #gdi32, "SetBkMode",hDC As Ulong,_
flag As long, RESULT As long
End Sub

Function GetDC(hWnd)
CallDLL #user32, "GetDC",hWnd As Ulong,_
GetDC As long
End Function

Sub ReleaseDC hWnd, hDC
CallDLL#user32,"ReleaseDC",hWnd As Ulong,_
hDC As long,result As long
End Sub

Sub Pause1 ms
                calldll #kernel32,"Sleep",_
                ms as ulong, re as void
                End Sub

sub Pause2 mil
                t=time$("milliseconds")
                while time$("milliseconds")<t+mil
                wend
                end sub

Sub Pause3 ms
                Timer ms, [resume]
                Wait
                [resume]
                Timer 0
                End Sub



Als u deze listing wilt proberen dan moet u eerst een
tekst in een bestand plaatsen met uw kladblokprogramma bijvoorbeeld.
De naam van dit bestand (waar ik mijn versjes wil plaatsen)
moet zijn testtext1.txt.
De achtergrond (BMP plaatje) staat in uw SPRITES map

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am


Keer terug naar Tips en informatie

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron