Amigo, seja bem-vindo ao Fórum!
Veja um exemplo:
Código: Selecionar todos
#include "hmg.ch"
Function Main
public aMenu := { {"Cadastro",{{"Clientes","Func_op(1,1)","cadcli"},{"Produtos","Func_op(1,2)","cadpro"},{"Sair","Encerrar()","sair"}}} ,;
{"Consulta",{{"Vendas","Func_op(2,1)","conven"},{"Estoque","Func_op(2,2)","conest"}}} ,;
{"Ajuda" ,{{"Help","MsgInfo('Help')"},{"Sobre","MsgInfo('Sobre')"}}}},;
cAction
DEFINE WINDOW Win_1 ;
AT 0,0 ;
WIDTH 400 ;
HEIGHT 400 ;
TITLE 'Exemplo de Menu' ;
MAIN
DEFINE MAIN MENU
For nI=1 To Len(aMenu)
POPUP aMenu[nI,1]
nOp:=LEN(aMenu[nI,2])
For nI2=1 To nOp
cAction:=aMenu[nI,2,nI2,2]
IF LEN(aMenu[nI,2,nI2])>2
cNomeAction:=aMenu[nI,2,nI2,3]
ITEM aMenu[nI,2,nI2,1] ACTION { || &cAction } NAME &cNomeAction
ELSE
ITEM aMenu[nI,2,nI2,1] ACTION { || &cAction }
ENDIF
Next
END POPUP
Next
END MENU
END WINDOW
ACTIVATE WINDOW Win_1
Return
Func Func_op(nOpMenu,nOpSubMenu)
if nOpMenu=1
if nOpSubMenu=1
MsgInfo("Menu=Cadastro - SubMenu=Clientes")
elseif nOpSubMenu=2
MsgInfo("Menu=Cadastro - SubMenu=Produtos")
endif
endif
if nOpMenu=2
if nOpSubMenu=1
MsgInfo("Menu=Consulta - SubMenu=Vendas")
elseif nOpSubMenu=2
MsgInfo("Menu=Consulta - SubMenu=Estoque")
endif
endif
MsgInfo("Nome da Action: "+This.Name)
Return Nil
Func Encerrar()
Win_1.release
Return Nil
Abraços,