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