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?
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?
Onnistumisinformaatiota: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/
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?
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).
Ahaa, no selittääkin. Kiitoksia taas
VB valittaa tätä kohtaa:
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long)
"Compile error:
User-defined type not defined"
Opettele
1) copypasteamaan
2) lukemaan virheilmoituksia
3) miettimään itse
>_<
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"
Ota ton rivin lopusta toi ) merkki pois, miten ihmeessä se on sinne ees joutunu??:)
Ei silti toiminu =(
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.