|
pa mozes i sa nekim osnovnim znanjem da napravis tvoje dugme, nacrtaj slicice u photoshopu (il u paintu, kako hoces) i samo ih menjaj kad ti je potrebno (za normal, active i down stanja). evo najjednostavnijeg nacina (ne i najboljeg):
pokreni Active OCX projekat i nazovi kontrolu, recimo CoolButton (mada mi taj naziv zvuci poznat, al nema veze) stavi jedan PictureBox koji ces da nazoves picImage, podesi mu AutoSize na true i Borders na 0, takodje mu stavi Enabled na false. Sad samo prepisi ovaj kod:
Private m_normal As StdPicture
Private m_down As StdPicture
Public Event Click()
Public Sub setElements(imgNormal As StdPicture, imgDown As StdPicture)
Set m_normal = imgNormal
Set m_down = imgDown
If Not m_normal IsNothing Then
Call picImage.Move(0, 0)
picImage.Picture = imgNormal
UserControl.Width = picIMage.Width
UserControl.Height = picImage.Height 'ScaleMode forme nek ti bude isti kao ScaleMode UserControl-a (tj, ne menjaj nista)
End If
End Sub
Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not m_down IsNothing Then
picImage.Picture = m_down
End If
End Sub
Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not m_normal IsNothing Then
picImage.Picture = m_normal
End If
RaiseEvent Click()
End Sub
sacuvaj projekat (recimo projCoolButton.vbp) i pokreni novi (Standard EXE). klikni desnim tasterom misa na project explorer (obicno je sa desne strane, pri vrhu) i izaberi Add/User Control; izaberi CoolButton.ctl. Pojavice ti se u Toolboxu nova ikonica "CoolButton". postavi je na formu i nazovi je, recimo btnTest. potom prepisi ovaj kod:
Private Sub Form_Load()
Call btnTest.setElements(LoadPicture("C:\button_normal.bmp"), LoadPicture("C:\button_down.bmp"))
End Sub
Private Sub btnTest_Click()
Call MsgBox("CoolButton!")
End Sub
naravno podrazumevajuci da si napravio dve slicice "button_normal.bmp" i "button_down.bmp" (iste velicine) i da se one nalaze u folderu "C:\".
pokreni projekat i isprobaj dugme.
mozes i bez ovoga LoadPicture, stavis dva PictureBox-a na formu (Picture1 i Picture2) i u njih ucitaj slicice koje hoces i onda bi ovako pozivao setElements:
Call btnTest.setElements(Picture1.Picture, Picture2.Picture)
sto je bolji nacin jer onda uz tvoj program neces morati da distribuiras dodatne fajlove...
kao sto rekoh ovo je najjednostavniji nacin, ali ima svojih nedostataka....
nadam se da ce ti bilo sta od ovoga koristiti
poz,
krcko
p.s. ovo nije isprobano ali treba da radi
|