Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
LA FUNZIONE ISMENU (Tutorial completo)

Può talvolta capitare di dover lavorare coi riferimenti ad oggetti presenti sul piano Si prenda l'esempio di un editor del cosidetto tipo WYSIWYG (What You See Is What You Get) nel quale, per l'appunto, il compito di scrivere il codice spetta all'applicazione mentre l'utente si limiterà a mettere insieme la componente grafica (e quindi l'aspetto finale) del programma.
L'utente inserirà sul piano alcuni controlli e chi progetta l'editor non conosce quanti e soprattutto quali controlli verranno utilizzati.
Relativamente ai menu, ci viene comunque in aiuto la funzione IsMenu, un'API davvero semplice che ci permette di scoprire se il riferimento all'oggetto indica proprio un menu.
La dichiarazione della funzione è la seguente:

Private Declare Function IsMenu Lib "user32" (ByVal hMenu As Long) As Long

Il che dimostra che la funzione è davvero di semplice impiego.
L'unico parametro necessario è infatti il riferimento all'oggetto (che può o meno essere un menu).
Nell'esempio seguente verrà recuperato l'intero di riferimento al menu attraverso la funzione GetMenu e GetSubMenu, cosa piuttosto paradossale a dire il vero in quanto è perfettamente inutile verificare se è un menu l'oggetto il cui intero di riferimento è stato recuperato attraverso una funzione che individua proprio il riferimento ai menu. E' come verificare se un menu è un menu o meno.
In ogni caso proseguiamo con l'esempio poichè ci serve perlomeno per scoprire come lavora la funzione.
Aperto un nuovo progetto EXE Standard, immettiamo nel piano un menu attraverso il consueto editor. Il menu deve avere almeno una voce, ad esempio:
Menu
...Voce1

Dichiariamo adesso le funzioni che ci servono, ossia GetMenu, GetSubMenu e IsMenu:

Private Declare Function IsMenu Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, _
ByVal nPos As Long) As Long

Nell'evento Load di Form1 dichiariamo le variabili che conterranno i parametri che andremo ad inserire nelle funzioni ed i risultati stessi delle funzioni:

Private Sub Form_Load()
Dim Risultato1, Risultato2 As Boolean
Dim Menu, SubMenu, EUnMenu, EUnSottomenu As Long

Adesso recuperiamo gli interi che si riferiscono al menu ed al sottomenu:

Menu = GetMenu(Form1.hwnd)
SubMenu = GetSubMenu(Menu, 0)

e chiamiamo sia per il menu che per il sottomenu la funzione IsMenu:

EUnMenu = IsMenu(Menu)
EUnSottomenu = IsMenu(SubMenu)

immettiamo il valore 0 (IsMenu ha fallito) o il valore 1 (IsMenu ha avuto successo) nelle variabili Booleane 'Risultato1' e 'Risultato2' e visualizziamole attraverso una finestra di messaggio:

If EUnMenu <> 0 Then
Risultato1 = True
Else
Risultato1 = False
End If
If EUnSottomenu <> 0 Then
Risultato2 = True
Else
Risultato2 = False
End If
MsgBox Risultato1 & " " & Risultato2
End Sub

Come ci si poteva aspettare, il risultato visualizzato dalla finestra di messaggio è proprio il seguente:




Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it