Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Onmouseover i onmouseout za picturebox

[es] :: Visual Basic 6 :: Onmouseover i onmouseout za picturebox

[ Pregleda: 5011 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zelja
Zeljko Antesevic

Član broj: 1761
Poruke: 5
*.rskoming.net



Profil

icon Onmouseover i onmouseout za picturebox18.01.2002. u 22:43 - pre 240 meseci
Kako da uradim u nekom programu Visual Basica primjer da mi sjenci neku komandu drugom bojom koju hocu da pokrenem..

- Naj jednostavni primjer gdje je to primjenjeno je kada kliknete dugme start u Windowsu pa povlacite misa recimo prema Find ili Programs svaka se kolona sijenci jednim kvadraticom kako da to uradim.

[Ovu poruku je menjao jc denton dana 08.07.2002 u 03:33 AM GMT]
 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.ptt.yu



Profil

icon Re: POMOC U Visual Basicu 6.017.02.2002. u 04:53 - pre 239 meseci
Tebi trebaju onmouseover i onmouseout efekti za VB.
E pa toga u VB-u nema pa ces morati da koristis neke API fn.
Pre svega mozes samo da odredis sledece :
Kada je mis iznad kontrole - mousemove event,
ali ne mozes znati kada je je van kontrole.
Zato ce ti posluziti sledeci API-ji koje ces da deklarises u modulu:

'******************
' funkcije za mouse evente - i ostalo ali ostacemo na ovome
Public Declare Function SetCapture Lib "USER32" (ByVal hWnd As Long) As Long
Public Declare Function ReleaseCapture Lib "USER32" () As Long
' *********************

ako se objekt zove picplay (picture box koji menja slike) onda u event mouseup ide :

With picplay
If (x < 0) Or (y < 0) Or (x > .Width) Or (y > .Height) Then
picplay.Picture = imgplay(0).Picture
End If
End With
*******
a u mousemove ide :
Call promenisliku(picplay, imgplay(0), imgplay(1), Button, Shift, x, y)
********
a u mousedown ide :
picplay.Picture = imgplay(2).Picture
*****
Objasnjenja :
imgplay(0).Picture - default slika
imgplay(1).Picture - onmouseover slika
imgplay(2).Picture - onmousedown slika
**************

evo ti moja procedura koju ja koristim, a stavices je u modul :

Sub promenisliku(dugme As Object, outslika As Object, overslika As Object, Button As Integer, Shift As Integer, x As Single, y As Single)

'**********************procedura za promenu slike objekta

'dugme je picturebox (objekt) nad kojim se vrse promene
'outslika je imagebox koji sadrzi mouseout sliku
'overslika je imagebox koji sadrzi mouseover sliku
'ostale promenljive su standardne promenljive iz mousemove eventa

With dugme ' ovde se specificira objekt na koji se odnosi ova procedura
If Button = 0 Then
If (x < 0) Or (y < 0) Or (x > .Width) Or (y > .Height) Then
'posto je mouse pointer van objekta, dozvolimo i ostalim objektima da
'prime svoje evente
ReleaseCapture
' ovde ide mouseout event
.Picture = outslika.Picture
Else
' mouse pointer je jos uvek iznad objekta, pa cemo da ga capture premda
' cemo primiti mouse messages iako je mouse pointer van objekta

SetCapture .hWnd
' ovde ide mouseover event
.Picture = overslika.Picture


End If
End If
End With

' brisemo objekte da ne zauzimaju mem
Set dugme = Nothing
Set outslika = Nothing
Set overslika = Nothing

End Sub

Prostije ne moze, sta ces ...

fire, walk with me
Prikačeni fajlovi
 
Odgovor na temu

zelja
Zeljko Antesevic

Član broj: 1761
Poruke: 5
195.252.78.*



Profil

icon Re: POMOC U Visual Basicu 6.017.02.2002. u 11:16 - pre 239 meseci
Hvala ti na trudi ali sad si me tek zbunio 100 %
nego da pojednostavimo uradi mi to prakticno ako nije problem na jednom obicnom primjeru
1. Znaci jedna Forma
2. dva dugmeta
3. dvije labele

Da vidim kako to funkcijonise i NISTA vise

moj E-Mail je : [email protected]
 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.ptt.yu



Profil

icon Re: POMOC U Visual Basicu 6.018.02.2002. u 06:12 - pre 239 meseci
Jel ti sad malo jasnije ?
fire, walk with me
 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.ptt.yu



Profil

icon Re: POMOC U Visual Basicu 6.019.02.2002. u 01:39 - pre 239 meseci
Na labelu ovo ne moze da se primeni osim ako joj na neki nacin ne saznas hwnd property (moze sigurno, ako se setim javicu ti)

Na dugme moze jer ima hwnd property kao i na sve ostale koji imaju window handle.

Evo ti uz poruku dorada za dugme, i zasto ne koristis picture box umesto labele (ima mnogo vise mogucnosti).






fire, walk with me
Prikačeni fajlovi
 
Odgovor na temu

gio1000
Italia

Član broj: 1159
Poruke: 122
*.98-62.inwind.it



Profil

icon Re: POMOC U Visual Basicu 6.028.02.2002. u 13:41 - pre 239 meseci
Ja sam to ovako rijesio:
Command1_MouseMove()
Promijeni iconu
End Sub
Onda oko Command1 sam stavio Retangle za 1mm veci od button.
Znaci cim izadjes sa button naidjes na retangle.
Retangle_MouseMove()
Vrati staru iconu na Command1
End Sub
 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.ptt.yu



Profil

icon Re: POMOC U Visual Basicu 6.028.02.2002. u 14:47 - pre 239 meseci
Nije lose resenje, moram da priznam, samo ako su dugmici jedno do drugog propade ti resenje ...
fire, walk with me
 
Odgovor na temu

gio1000
Italia

Član broj: 1159
Poruke: 122
*.98-62.inwind.it



Profil

icon Re: POMOC U Visual Basicu 6.028.02.2002. u 23:35 - pre 239 meseci
Ako se bas Command1 i Command2 ljube onda event MouseMove
stavi na:
Command2_MouseMove()
Vrati sliku na Command1
End Sub
U stvari, prva kontrola na koju naidjes posle Command1 nek vrati Default sliku.
Iskljucujem naravno Form, zbog toga sto bi na svaki pokret misa morao da vrsi kontrolu.
 
Odgovor na temu

zorzi
Beograd

Član broj: 1746
Poruke: 49
*.beoland.co.yu



Profil

icon Re: POMOC U Visual Basicu 6.001.03.2002. u 06:38 - pre 239 meseci
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.BackColor = "&H00800000"
Label2.BackColor = "&H8000000F"
End Sub
Private Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label2.BackColor = "&H00800000"
Label1.BackColor = "&H8000000F"
End Sub
 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.ptt.yu



Profil

icon Re: POMOC U Visual Basicu 6.001.03.2002. u 07:53 - pre 239 meseci
Citat:
gio1000:
Ako se bas Command1 i Command2 ljube onda event MouseMove
stavi na:
Command2_MouseMove()
Vrati sliku na Command1
End Sub
U stvari, prva kontrola na koju naidjes posle Command1 nek vrati Default sliku.
Iskljucujem naravno Form, zbog toga sto bi na svaki pokret misa morao da vrsi kontrolu.


Ma nije ovo dobro, zato sto ako imas mnogo dugmica na formi moras tacno da pazis kako ih pozicioniras (koje ide jedno do drugog itd..), jer kada bi im zamenio mesta ili slicno, nastao bi haos i pometnja... Drugo, pometnja je i u kodu, koje dugme treba da vrati def. sliku za drugo dugme. Sve ovo moze da se lako primeni na malo dugmica, a ako prva kontrola na koju 'naidjes' posle dugmeta vraca def. sliku na to dugme sa koga si 'dosao' , kako ces da znas sa kog si dugmeta 'dosao' ? Neces valjda da vracas default slike za svako dugme na formi (zamisli da ih imas 50) ?

Resenje za ovakve stvari mora da bude univerzalno, da ne bi pisao novi kod svaki put kad ti ovako nesto zatreba.
Po mom misljenju ovo moze da se resi jedino ako identifikujes dugme sa kog si dosao - sto je veoma prosto ...
A i forma mora da 'proverava' da li treba da vrati def. sliku na neko dugme a ne samo drugi dugmici.
fire, walk with me
 
Odgovor na temu

oadar
Pop-Tosic Milorad
Beograd

Član broj: 4523
Poruke: 38
*.verat.net



Profil

icon Re: Onmouseover i onmouseout za picturebox05.08.2002. u 17:13 - pre 233 meseci
Mislim da ipak postoji nacin da se prati kada je mis van kontrole. Mozda bi sledeci kod radio(resenje vazi za labelu ali probaj da li radi i na nekom drugom primeru)
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.BackColor = &H8000000F
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.BackColor = vbRed
End Sub
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Onmouseover i onmouseout za picturebox05.08.2002. u 17:47 - pre 233 meseci
Komplet resenje sa MSDN-a (za Label kontrolu):

http://msdn.microsoft.com/arch...arvbtips/html/msdn_msdn209.asp

HTH,
degojs
Commercial-Free !!!
 
Odgovor na temu

[es] :: Visual Basic 6 :: Onmouseover i onmouseout za picturebox

[ Pregleda: 5011 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.