Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [VB6] Formin sijainti kursoriin nähden

Sivun loppuun

Kulma [07.11.2005 18:08:02]

#

Miten saan, että formi on aina kymmenen pixeliä kursoria ylempänä ja 10 pixeliä enemmän vasemmalla päin kuin kursori?

Tässä tarvii luultavasti GetCursorPosition juttua mutta en osaa käyttää sitä.
Voisiko joku neuvoa?

Jäynis [07.11.2005 18:35:03]

#

Valmista soodia ei vissiin sais antaa joten tässä esimerkki GetCursorPos:n käytöstä ja formin liikuttelusta, tosin ei se hirveesti vaadi tästä muokata haluamaasi mutta kumminkin...

Laita formille timeri ni pääset testaan

Private Type POINTAPI
        x As Long
        y As Long
End Type

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Dim Piste As POINTAPI

'Näin liikkuu formi
Private Sub Form_Click()
    Me.Top = 200
    Me.Left = 200
End Sub

Private Sub Form_Load()
    Timer1.Interval = 10
End Sub

'Näin selviää hiiren X ja Y
Private Sub Timer1_Timer()
    dim trash as long
    trash=GetCursorPos(Piste)
    Me.Caption = "Hiiren X:" & Piste.x & "  Hiiren Y:" & Piste.y
End Sub

Edit:Huomasin ton funktion palauttavan jotain joten pitihän siihen lisätä toi muuttuja. Voisko joku kertoa et mitä se palauttaa?

Blaze [07.11.2005 18:46:23]

#

Onnistumisinformaatiota: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/cursors/cursorreference/cursorfunctions/getcursorpos.asp

Jäynis [07.11.2005 19:11:50]

#

Näin arvelinkin, kiitos vastauksesta.

Ja tuleville sukupolville tiedoksi että GetCursoPos palauttaa jotain muuta(1) kuin nolla jos onnistui.

Mutta se jääkin sitten mietityttämään että miksi tyyppiä long eikä vaikka bool, luulis sen palauttavan muutakin mutta kun googlekaan ei tiedä eikä msdn muuta kerro ni kai se on sitte siinä, vai?

Blaze [07.11.2005 20:01:50]

#

Koska C:ssä ei ole Boolean-tyyppiä (C++:ssa on), käytetään paluuarvona yleisesti int-tyyppiä, jota vastaa VB:n Long (32-bittinen kokonaisluku).

Jäynis [07.11.2005 20:03:07]

#

Ahaa, no selittääkin. Kiitoksia taas

Kulma [08.11.2005 16:42:55]

#

VB valittaa tätä kohtaa:

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long)

"Compile error:
User-defined type not defined"

Blaze [08.11.2005 16:47:12]

#

Opettele
1) copypasteamaan
2) lukemaan virheilmoituksia
3) miettimään itse
>_<

Kulma [08.11.2005 16:52:23]

#

Ei mulla siinä koodissa tota " - merkkiä ollu perässä. =P
[EDIT] Tai en tiiä oliko, ku nyt se virhe vaihtu:
"Compile error:
User-defined type not defined"

Jäynis [08.11.2005 17:32:24]

#

Ota ton rivin lopusta toi ) merkki pois, miten ihmeessä se on sinne ees joutunu??:)

Kulma [09.11.2005 16:17:04]

#

Ei silti toiminu =(

Pöytälamppu [09.11.2005 16:32:08]

#

Kulma kirjoitti:

VB valittaa tätä kohtaa:

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long)

"Compile error:
User-defined type not defined"

Tuo tarkoittaa että sinulta puuttuu POINTAPI:n määrittely eli kopioi

 Private Type POINTAPI
        x As Long
        y As Long
End Type

sinne


Sivun alkuun

Vastaus

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

Tietoa sivustosta