Gå til innhold

Lage nye former på knapper og menyer


Anbefalte innlegg

Videoannonse
Annonse

Selve standard-formen kan ikke ha flere enn 4 kanter så vidt jeg vet.

Men du kan lage dine egne former i feks Paint eller Photoshop eller lignende programmer.

 

La oss si du lagde noe lignenede dette i Photoshop:

19April_Monday_3e85jg-thumbnail.jpg (Klikk for større)

 

Da er det grå formen, mens alt som er rosa blir gjennomsiktig.

Lagre bildet som PNG eller Bmp for best mulig kvalitet.

 

Sett bildet du laget som BackgroundImage i formen:

19April_Monday_38aa44.png

 

Så velger du TransparancyKey (RGB Verdi som skal bli gjennomsiktig)

19April_Monday_eb5e5j.png

Det er viktig at du har samme RGB Verdi på TransparancyKey som på bildet du lagra, ellers vil det ikke gå.

 

Når det er gjort setter du FormBorderStyle til None

19April_Monday_3657ce.png (Fjerner kanten rundt formen, tittelbar osv)

 

Da får du noe lignende dette(Alt ettersom hvordan du tegnet opp formen din)

19April_Monday_fg4a78-thumbnail.jpg (Klikk for større).

 

Du kan også tegne dine egne knapper. Men da kan du bruke PictureBox, så legge inn bildet til knappen der.

 

Du kan tegne opp formen med kode også, men tar mye lengre tid. Her er et eksempel:

19April_Monday_357k87-thumbnail.jpg

 

Dette er riktignok eksempel for VB.net.

Endret av Merko.
Lenke til kommentar

Hei, tusen hjertelig for guide :) Dette var nesten for avansert for meg, men da har jeg jammen lært noe nytt da også :) Er bare en 13 år gammel gutt som pusler litt med Visual Basic, noe jeg syns er veldig gøy. Det du skrev åpner helt nye muligheter for meg :)

 

Enda en gang, tusen hjertelig takk ;)

 

 

 

 

VB96

 

Hei igjen. Jeg vet ikke om du skrev det, men kunne man "lage knapper" av det man har tegnet? F.eks at den posisjonen er en knapp? :)

 

 

Takker for svar!

 

VB96

Lenke til kommentar

Her er kode for en rund knapp i vb6. Test i vb6-editoren, merk at knappens handling er lagt til picture1 mouseup eventen. Endre på parametrene for å tilpasse text, skrift, farger og knappens grad av rundhet etc. Knappens posisjon blir der man setter inn picture1 på formen. Knappens størrelse avhenger av hvor stor man gjør picture1 mht width og height.

 

 

Private Declare Function SetWindowRgn Lib "User32" _
(ByVal hwnd As Long, _
ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CreateRoundRectRgn _
Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, _
ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, _
ByVal Y3 As Long) As Long
Const ETO_OPAQUE = 2
Private Declare Function ExtTextOut Lib "gdi32" _
Alias "ExtTextOutA" (ByVal hdc As Long, _
ByVal x As Long, ByVal y As Long, ByVal wOptions As _
Long, ByVal lpRect As Any, ByVal lpString As String, _
ByVal nCount As Long, lpDx As Long) As Long

Private Sub Form_Load()
Picture1.BackColor = RGB(255, 0, 0)
Picture1.FontSize = 10
Picture1.BorderStyle = 0:
n = 100 'rund knapp, n = 44 runde hjørner etc.
px = Picture1.Width / 15
py = Picture1.Height / 15
draw_text
SetWindowRgn Picture1.hwnd, _
CreateRoundRectRgn(0, 0, px, py, n, n), True
End Sub

Private Sub Picture1_MouseDown(Button As Integer, _
Shift As Integer, x As Single, y As Single)
Picture1.BackColor = RGB(0, 255, 0)
draw_text
End Sub

Private Sub Picture1_MouseUp(Button As Integer, _
Shift As Integer, x As Single, y As Single)
Picture1.BackColor = RGB(255, 0, 0)
draw_text
MsgBox ("Hei på deg!")
End Sub
Private Sub draw_text()
Picture1.FontBold = True
Picture1.ForeColor = RGB(0, 0, 255)
Dim Arr(0 To 5) As Long
Const mStr = "Knapp"
Me.ScaleMode = vbPixels
  For x = 0 To 5
  Arr(x) = 10
  Next x
Dim text_left, text_top
text_left = 17
text_top = 30
ExtTextOut Picture1.hdc, text_left, text_top, _
ETO_OPAQUE, ByVal 0&, mStr, Len(mStr), Arr(0)
End Sub

Private Sub Picture1_Paint()
draw_text
End Sub

Lenke til kommentar

Heisann. Takker super mye for alle svar ;) Tusen takk alle sammen. Men, en liten ting til lurte jeg på :) Når jeg har satt FormBorderStyle til "None", så får jeg jo ikke beveget på FORMen min. Hvordan får jeg til slik at jeg kan bevege på den, men allikevel ha FormBorderStyle på None? :/

 

 

 

Takk igjen!

 

 

VB96

Lenke til kommentar

Heisann. Takker super mye for alle svar ;) Tusen takk alle sammen. Men, en liten ting til lurte jeg på :) Når jeg har satt FormBorderStyle til "None", så får jeg jo ikke beveget på FORMen min. Hvordan får jeg til slik at jeg kan bevege på den, men allikevel ha FormBorderStyle på None? :/

 

Takk igjen!

 

 

VB96

sånn at det ikke skal bli noen forvirring, bruker du Visual Basic 6, eller Visual Basic 2008 \ 2010 eller noe?

 

Her er iallefall et VB.Net eksempel på hvordan du flytter på formen uten at du må bruke FormBorderStyle. Kanskje ikke den beste måten, men fungerer fint.

22April_Thursday_5f576e.png

Lenke til kommentar

Heisann. Takker super mye for alle svar ;) Tusen takk alle sammen. Men, en liten ting til lurte jeg på :) Når jeg har satt FormBorderStyle til "None", så får jeg jo ikke beveget på FORMen min. Hvordan får jeg til slik at jeg kan bevege på den, men allikevel ha FormBorderStyle på None? :/

 

Takk igjen!

 

 

VB96

sånn at det ikke skal bli noen forvirring, bruker du Visual Basic 6, eller Visual Basic 2008 \ 2010 eller noe?

 

Her er iallefall et VB.Net eksempel på hvordan du flytter på formen uten at du må bruke FormBorderStyle. Kanskje ikke den beste måten, men fungerer fint.

22April_Thursday_5f576e.png

 

 

Heisann. Tusen takk for svar. AKKURAT det jeg trengte, begynte å lure når jeg ikke fikk beveget på formen. Jeg bruker Visual Basic 2010 Ultimate ;)

 

Hvis du lurer på hvorfor jeg ikke er å så flink i dette her, så er det fordi jeg startet for bare 3-4 mnd siden og fordi jeg bare er 13 år, men lærer fort synes jeg:)

 

 

Takker for alt, enda en gang.

:cool:

Lenke til kommentar
  • 2 måneder senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...