Página 1 de 1
Exemplo GTWVW
Enviado: 20 Jan 2007 15:45
por carlos_dornelas
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
Enviado: 20 Jan 2007 18:38
por Stanis Luksys
Olá,
Meia dúzias de tópicos abaixo deste seu tem um.
Falou!
Enviado: 20 Jan 2007 20:11
por carlos_dornelas
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)
Enviado: 20 Jan 2007 20:38
por Luiz
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
Enviado: 20 Jan 2007 22:53
por carlos_dornelas
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
Enviado: 20 Jan 2007 23:16
por Luiz
a) como acrescentar mais um item no menu vertical sem sub-menus?
Basta fazer um append atribuindo ao handle do menu, no caso do exemplo o hSubMenu1 e especificar um valor pra opcão
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 )
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?
Sim, use
SET EVENTMASK TO INKEY_ALL
Agradeço pela atenção e peço desculpas por dúvidas tão básicas...
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 posso
Enviado: 22 Jan 2007 19:46
por carlos_dornelas
Valeu, mais uma vez! Estou começando a gostar da gtwvw...
[]s
Antonio Carlos