Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: VB:llä piirto tyhjän päälle

AdeRide [02.08.2005 14:50:57]

#

Eli onko mahdollista piirtää VB:llä kuvioita tyhjän päälle eli ei siihen ohjelma ikkunaan vaan niin, että ne näkyy tuossa Windowsin tai vaikka selaimen päällä? Jos on niin miten?

hunajavohveli [02.08.2005 22:02:59]

#

Oisko tästä apua?
https://www.ohjelmointiputka.net/koodivinkit/24435-vb6-aktiivisen-ikkunan-päällä-istuva-maskotti

Axuu [03.08.2005 11:53:45]

#

Alla oleva koodi piirtää 2 viivaa ruudulle tyhjänpäälle. Tämä piirtotapa on todella hidas, joten toi maskotin tapasesti piirtäminen juttu saattaisi olla parempi.

Koodi on sit joku mun vanha testijuttu...ja saattaa olla muokkaus jonkun toisen koodivinkistä.

Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
'kun setataan pikseli, pitää tietää mihin se setataan
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
'ikkunan x ja y koordien hakemiseen
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
'set- ja getpixel käyttää DC:tä
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Public Sub Psettaa(x, y, v)

    'kuka siellä
    hanska = WindowFromPoint(xstart + x, ystart + y)
    Dim rekti As RECT 'ikkunan x ja y:tä varten
    GetWindowRect hanska, rekti
    'lasketaan koordit mihin kohtaan _ikkunaa_ piirretään, x ja y ovat screenin koordit
    hoodeesee = GetWindowDC(hanska)
    SetPixel hoodeesee, x - rekti.Left, y - rekti.Top, v

End Sub

Public Function Pgettaa(x, y)

    'kuka siellä
    hanska = WindowFromPoint(xstart + x, ystart + y)
    Dim rekti As RECT 'ikkunan x ja y:tä varten
    GetWindowRect hanska, rekti
    'lasketaan koordit mihin kohtaan _ikkunaa_ piirretään, x ja y ovat screenin koordit
    hoodeesee = GetWindowDC(hanska)
    Pgettaa = GetPixel(hoodeesee, x - rekti.Left, y - rekti.Top)

End Function




Private Sub Form_Load()
Piirto
End Sub

Sub Piirto()
       Dim x%, y%
    For x% = 26 To 170
        Psettaa x%, 36, 255
    Next

    For y% = 36 To 125
        Psettaa 46, y%, 255
    Next


End Sub

Axuu [03.08.2005 17:03:40]

#

edellisessä koodissa näyttää oleavan myös pixeleitten värin hakeminen mistä vaan, joten siinä on paljon turhaa joukossa, joten poista vaan ylimääräset pois.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta