Olá Amigos!
Alguém tem um exemplo bem simples e funcional de menu utilizando a gtwvw? Qual a diferença entre Gtwvw, Gtwvt, gtgui? Alguém pode me dar uma luz?
[]s
Antonio Carlos
Exemplo GTWVW
Moderador: Moderadores
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Olá,
Meia dúzias de tópicos abaixo deste seu tem um.
Falou!
Meia dúzias de tópicos abaixo deste seu tem um.
Falou!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
OK, OK Stanis!! Mas como estou engatinhando no WVW pedi um exemplozinho bem simples e funcionando. Encontrei uma rotina (abaixo), aqui no fórum, mas não consigo fazê-la funcionar bem. Eu só queria uma janela com 3 menus, alguns sub-menus e ao clicar em uma opção a ação correspondente fosse executada. Veja só o exemplo abaixo: o que está errado, que não funciona?
Se você ou mais alguém que usa a wvw puder me dar um empurrãozinho, fico muito grato!
Antonio Carlos - Curitiba
#include "winuser.ch"
function main()
hWnd := WVW_GETWINDOWHANDLE()
hMenu = WVW_CreateMenu( ) // DETERMINA O 1o. NIVEL
hPopupMenu = WVW_CreateMenu( ) // DETERMINA O 2o. NIVEL
hPopupSubMenu = WVW_CreateMenu( ) // DETERMINA O 3o. NIVEL
WVW_AppendMenu( hPopupSubMenu, MF_ENABLED + MF_STRING,"Cadastro de Clientes",cadcli() )
WVW_AppendMenu( hPopupSubMenu, MF_ENABLED + MF_STRING,"Cadastro de Fornecedores",cadfor())
WVW_AppendMenu( hPopupMenu, MF_ENABLED + MF_POPUP , hPopupSubMenu, "Cadastros")
WVW_AppendMenu( hMenu , MF_ENABLED + MF_POPUP , hPopupMenu , "Arquivos")
hPopupMenu = WVW_CreateMenu( )
WVW_SetMenu(, hMenu )
function cadcli()
? 'teste1'
inkey(0)
function cadfor()
? 'teste2'
inkey(0)
Se você ou mais alguém que usa a wvw puder me dar um empurrãozinho, fico muito grato!
Antonio Carlos - Curitiba
#include "winuser.ch"
function main()
hWnd := WVW_GETWINDOWHANDLE()
hMenu = WVW_CreateMenu( ) // DETERMINA O 1o. NIVEL
hPopupMenu = WVW_CreateMenu( ) // DETERMINA O 2o. NIVEL
hPopupSubMenu = WVW_CreateMenu( ) // DETERMINA O 3o. NIVEL
WVW_AppendMenu( hPopupSubMenu, MF_ENABLED + MF_STRING,"Cadastro de Clientes",cadcli() )
WVW_AppendMenu( hPopupSubMenu, MF_ENABLED + MF_STRING,"Cadastro de Fornecedores",cadfor())
WVW_AppendMenu( hPopupMenu, MF_ENABLED + MF_POPUP , hPopupSubMenu, "Cadastros")
WVW_AppendMenu( hMenu , MF_ENABLED + MF_POPUP , hPopupMenu , "Arquivos")
hPopupMenu = WVW_CreateMenu( )
WVW_SetMenu(, hMenu )
function cadcli()
? 'teste1'
inkey(0)
function cadfor()
? 'teste2'
inkey(0)
Aqui vai um exemplo funcional e testado:
Código: Selecionar todos
#include "\xbase\xharbour\contrib\what32\include\winuser.ch"
#define MENUID_1 101
#define MENUID_2 102
Function Main()
SETINKEYAFTERBLOCK({|nkey| AfterInkey(nkey)})
hMainMenu = WVW_CreateMenu( )
hSubMenu1 = WVW_CreateMenu( )
hSubMenu1_1 = WVW_CreateMenu( )
WVW_AppendMenu( hSubMenu1_1 , MF_ENABLED + MF_STRING, MENUID_1, "Cadastro de Clientes" )
WVW_AppendMenu( hSubMenu1_1 , MF_ENABLED + MF_STRING, MENUID_2, "Cadastro de Fornecedores" )
WVW_AppendMenu( hSubMenu1 , MF_ENABLED + MF_POPUP , hSubMenu1_1 , "Cadastros", )
WVW_AppendMenu( hMainMenu , MF_ENABLED + MF_POPUP , hSubMenu1 , "Arquivos", )
WVW_SetMenu(, hMainMenu )
do while lastkey()<>27
inkey(0)
enddo
return
function AfterInkey(nkey)
local MenuId
IF nKey=1024
MenuId:=WVW_GETLASTMENUEVENT()
if MenuId=MENUID_1
cadcli()
elseif MenuId=MENUID_2
cadfor()
endif
ENDIF
return nkey
function cadcli
setcolor('N/W')
wvw_nopenwindow('',5,5,7,20)
@ 1,1 say 'teste1'
inkey(0)
wvw_lclosewindow()
return nil
function cadfor
setcolor('N/W')
wvw_nopenwindow('',5,5,7,20)
@ 1,1 say 'teste2'
inkey(0)
wvw_lclosewindow()
return nil-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Perfeito!
Era isso que precisava! Já comecei novos testes e agora me apareceram mais dúvidas:
a) como acrescentar mais um item no menu vertical sem sub-menus?
b) na janela gerada pelo cadcli, testei o funcionamento do mouse nos gets, mas não aconteceu nada! Tem alguma função para ativar o mouse?
exemplo:
function cadcli
setcolor('N/W')
wvw_nopenwindow('',5,5,7,20)
a=1
b=2
@ 1,1 get a
@ 2,1 get b
read
wvw_lclosewindow()
return nil
Agradeço pela atenção e peço desculpas por dúvidas tão básicas...
Antonio Carlos
Era isso que precisava! Já comecei novos testes e agora me apareceram mais dúvidas:
a) como acrescentar mais um item no menu vertical sem sub-menus?
b) na janela gerada pelo cadcli, testei o funcionamento do mouse nos gets, mas não aconteceu nada! Tem alguma função para ativar o mouse?
exemplo:
function cadcli
setcolor('N/W')
wvw_nopenwindow('',5,5,7,20)
a=1
b=2
@ 1,1 get a
@ 2,1 get b
read
wvw_lclosewindow()
return nil
Agradeço pela atenção e peço desculpas por dúvidas tão básicas...
Antonio Carlos
Basta fazer um append atribuindo ao handle do menu, no caso do exemplo o hSubMenu1 e especificar um valor pra opcãoa) como acrescentar mais um item no menu vertical sem sub-menus?
Código: Selecionar todos
hMainMenu = WVW_CreateMenu( )
hSubMenu1 = WVW_CreateMenu( )
hSubMenu1_1 = WVW_CreateMenu( )
WVW_AppendMenu( hSubMenu1_1 , MF_ENABLED + MF_STRING, MENUID_1, "Cadastro de Clientes" )
WVW_AppendMenu( hSubMenu1_1 , MF_ENABLED + MF_STRING, MENUID_2, "Cadastro de Fornecedores" )
WVW_AppendMenu( hSubMenu1 , MF_ENABLED + MF_POPUP , hSubMenu1_1 , "Cadastros", )
WVW_AppendMenu( hSubMenu1 , MF_ENABLED + MF_POPUP , <ID> , "Nova Opção", )
WVW_AppendMenu( hMainMenu , MF_ENABLED + MF_POPUP , hSubMenu1 , "Arquivos", )
WVW_SetMenu(, hMainMenu )Sim, use SET EVENTMASK TO INKEY_ALLb) na janela gerada pelo cadcli, testei o funcionamento do mouse nos gets, mas não aconteceu nada! Tem alguma função para ativar o mouse?
Eu já passei por essas e muitas outras dúvidas, mas graças a Deus e tambem a esse e outros forums eu sempre acabei encontrando a solução, por isso que eu tento ajudar sempre que possoAgradeço pela atenção e peço desculpas por dúvidas tão básicas...
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
