MENÜ OLUŞTURMA
VE
POP-UP MENÜ HAZIRLAMA
Menü Oluşturma
Elbette menüler de profesyonel bir programın incisi gibidir. Biz de bunun farkında olduğumuzdan sizlerin bunu öğrenmesini istedik.
Bir formun boş bir alanına sağ tıklandığında açılan menüde mutlaka bir 'Menu Editor' seçeneğine rastlamışsınızdır. Şimdi sizlere bu seçeneği tıklayarak neler yapabileceğiniz konusunda biraz ipuçları vereceğim.
Açılan 'Menu Editor' penceresinde 'Caption' yazan bölüme menüde görünecek yazı yazılacaktır. Altındaki 'Name' bölümü ise proje içindeki nesne ismidir. Buraya girilen metin Türkçe karakter taşımazsa iyi olur. Aksi takdirde ileride sorunlarla karşılaşabilirsiniz. Buradan sonra yapılacak tek şey OK(Tamam) tuşuna basmak olacak. İşte sizinde bir menünüz oldu. Yalnız bu sadece bir kulp. Yani nasıl bir fincanın kulu bu vardır. Aynen öyle. Kulp bir fincana gerekli fakat tek kulp bizi asla kahveye ulaştırmaz. İşte bu noktada pencerenin tam ortasında sağa

sola

aşağı

yukarı birtakım düğmeler göreceksiniz. Bu düğmelerden sağ oklu olan düğmeye bir defa tıkladığınızda biraz önce eklediğiniz menü başlığının altında bir nokta grubu(4 Nokta) belirecek. Şimdi biraz önce yaptığımız işlemleri tekrar yaparak asıl menüyü oluşturmaya başlayabilirsiniz. Böylelikle ilk olarak eklediğiniz menüye tıklandığı zaman alta doğru açılan bir menü ile karşılaşabilirsiniz. Ekleyeceğiniz menüler sizin programınızın özelliklerine göre değişebilir.
Pop-Up Menüler...
Bildiğiniz gibi Pop-up menüler

WINDOWS 3

1 ile gelen ve bazı programlarda sağ fare tuşuna basıldığında programla ilgili birtakım olayları gerçekleştirebilmenize yarayan menülerdir. Bu menüler WINDOWS 95 kullananların ise artık eli ayağı durumundalar. Visual Basic ile bu menüleri yaratmak çok kolay.
Menü editörünü açın ve şekildeki gibi özellikler taşıyan ve ismi "Pano" olan bir menü yaratın. Menünüzü yarattıktan sonra editörden çıkmadan sadece "pano" isimli kısmı "görünmez" yapın. Editörden çıktığınızda yarattığınız menünün görülmediğini fark edeceksiniz. Form üzerindeki diğer kontrolleri de yarattıktan sonra programınızı çalıştırın ve text kutusunun üstüne gidip "Sağ" fare tuşuna tıklayın. Karşınıza menü editörüyle yarattığınız menü bir pop-up menü olarak çıkacaktır. Programınız çalışırken menülerin ayarlarıyla oynayabildiğinizden pop-up menüyü

normal bir menü haline ikinci seçeneği seçerek dönüştürebilirsiniz.
Private Sub Form_Load()
Pano.Visible = False
Option1.Value = True
End Sub
Private Sub Option1_Click()
pano.Visible = False
End Sub
Private Sub Option2_Click()
pano.Visible = True
End Sub
Private Sub tarih_Click()
Text1.Text = Text1.Text & Now
End Sub
Private Sub Text1_MouseUp(Button As Integer

Shift As Integer

X As Single

Y As Single)
If pano.Visible = True Then GoTo atla
If Button = 2 Then
PopupMenu pano
End If
atla:
End Sub
Formlarımıza menü eklerken ve menüleri düzenlerken yanda görülen pencereden faydalanacağız. Oluşturmak istediğimiz menünün başlığını Caption adlı bölüme gireriz. Name kısmına ise bu menü için bir ad yazarız. İlk menümüzü belirledikten sonra Next düğmesine basarız. Visual Basic Caption ve Name kutucuklarını bir sonraki menüyü ilave edebilmemiz için boşaltır. Yeni menü öğeleri yaratıldıkça

aşağıda bulunan liste kutusunda listelenirler. Alt menüleri oluşturmak için ise Next düğmesinin sol tarafında bulunan ok düğmelerini kullanırız. Var olan bir menünün silinmesi için liste kutusundan menüyü seçer ve Delete butonuna tıklarız. Yeni menüler ilave ederken ise Insert butonundan faydalanırız.
Microsoft Word’de Düzen menüsüne tıkladığımız zaman Kopyala için Ctrl + C

Kes için Ctrl + X

Yapıştır için Ctrl + V kısayol tuşları görülür. Visual Basic’de de bu tip menüler oluşturmak istediğimizde Menü Editor penceresindeki liste kutusundan bir menü seçtikten sonra Shotcut bölümünü kullanabiliriz.
Popup Menüler
Windows’ta sağ düğmeye bastığımızda çıkan menülere popup menüler adını veririz. Visual Basic’de hazırladığımız projelerde de popup menüler oluşturabiliriz. Popup menü tasarımı normal menü tasarımı gibi gerçekleşir. Sadece bu menünün visible özelliğine false değeri verilir ve açılması istenilen yerde PopupMenu yöntemi kullanılır.
PopupMenu MenüAdı

Flags

X

Y

Bold
MenüAdı; Menü Editörde tasarlanan menünün adı
Flags; X parametresinin nasıl kullanılacağını ve açılan menüde farenin hangi tuşunun click olayını gerçekleştireceğini belirler.
Flags parametresi aşağıdaki gibi kullanılır;
Flags=KoorX + Fare
KoorX aşağıdaki değerleri alır
0: Menü X kordinatının solunda yer alır
4: Menü X kordinatını ortalayacak
8: Menü X kordinatının sağında yer alır
Fare aşağıdaki değerleri alır
0: Sol fare tuşu ile menüden eleman seçilebilecek
2: Sağ fare tuşu ile menüden eleman seçilebilecek
Bold; Bu parametre ile menüdeki elemanlardan biri kalın yapılabilir
Private Sub Text1_MouseDown(Button As Integer

Shift As Integer

X As Single

Y As Single)
'Sağ fare düğmesine basıldı ise
If Button = 2 Then
PopupMenu mnuDuzen

4

Text1.Left + X

Text1.Top + Y
End If
End Sub
VİSUALBASİC İLE YAPTIGINIZ
MENULERE RESİM EKLEMEK
---- Aşağıdaki Kod Modul içine yazılacak ----
Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long

ByVal nPos As Long) As Long
Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long

ByVal nPos As Long) As Long
Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long

ByVal nPosition As Long

ByVal wFlags As Long

ByVal hBitmapUnchecked As Long

ByVal hBitmapChecked As Long) As Long
Public Const MF_BITMAP = &H4&
Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long

ByVal un As Long

ByVal b As Boolean

_
lpMenuItemInfo As MENUITEMINFO) As Boolean
Public Const MIIM_ID = &H2
Public Const MIIM_TYPE = &H10
Public Const MFT_STRING = &H0
--- Modul içine yazılcak kısım bitti ---
Menü editörünü kullanarak bir menü oluşturun. içinde 3 tane şeçenek olsun. isimleri Dosya

index numaraları 0

1

2 olsun. Bunu yaptıktan sonra. Form üzerine L isminde bir ListBox

D isminde CommanDialog(filter özelligi = *.bmp|*.bmp)

MenuResim isminde bir PictureBox (index Numarası=0

Autosize=true

visible=false)

C adında bir Commandbutton ekleyin ve aşagıdaki kodu form üzerine yapıştırın.
Private Sub C_Click()
D.ShowOpen
Ekle L.ListIndex

D.FileName
End Sub
Private Sub Form_Load()
For i = 0 To dosya.UBound
L.AddItem dosya(i).Caption
Next i
End Sub
Public Sub Ekle(X As Integer

ResimAdi As String)
On Error Resume Next
Load MenuResim(X)
MenuResim(X).Picture = LoadPicture(ResimAdi)
hMenu& = GetMenu(Form1.hwnd)
hSubMenu& = GetSubMenu(hMenu&

0)
hid& = GetMenuItemID(hSubMenu&

X)
SetMenuItemBitmaps hMenu&

hid&

MF_BITMAP

MenuResim(X).Picture

MenuResim(X).Picture
End Sub
--- Form içine yazılcak Kısım bitti ---
Program çalışırken Listboxtan hangi menuye resim eklemek isterseniz onu seçin ve C butonunu tıklayın. Resim belirleyin .Artık menunuzde resim var.
Popup Menü yapmak...
Popup menüler programlamada çok kullanılan araçlardan birisidir.
Private Sub Form_Click()
PopupMenu mnupopup
End Sub
Böylece forma her tıkladığınızda menünüz gözükmüş olacak.Küçük ama pratik bir yöntem değil mi?
İsterseniz menu editörden menünüzü görünmez yapabilirsiniz