Olá Pablo,

Todo Form pode ter um menu, correto? O que acontece quando você possui um MDI com menu e este
MDI chama um Form que também possui menus? O menu do Form aparece no local do menu do MDI.
Ao contrário do que você imagina, isto não é uma excessão, isto é a regra. Mesmo que o form não
possua nada no menu, quando você abre um form sem menu dentro do MDI o form faz uma cópia do
menu do MDI para si próprio e sobrescreve o menu do MDI. Só que com uma diferença, nesta cópia
não são reconhecidos menus dinâmicos. A única alternativa é criar uma função que refaça a criação dos
menus dinâmicos no SAM_CreateComplete de cada formulário criado, e sempre que o formulário for
destruído você deve postar (SalPostMsg) uma mensagem própria (PAM_...) para o MDI executar a
mesma função, pois o retorno do focus para o MDI faz cum ele recrie o seu menu fixo novamente,
excluindo os dinâmicos.

Faça este teste. Já faz algum tempo que criei uma classe multilingua que traduz todos os objetos em
tempo de execução, incluindo menus, e neste desenvolvimento me deparei com diversos problemas
envolvendo menus, não me lembro exatamente de todos, mas se você precisar de mais alguma dica
posso vasculhar a documentação novamente atrás de novas informações.

--
Erasmo Bispo de Oliveira Junior
Analista de Sistemas
SoftWay - Verge informática Ltda
(019) 231-9436
[EMAIL PROTECTED]

Pablo Acylino wrote:

 Olá pessoal, o caso dessa vez é com a função VisMenuInsert:         - A idéia é obter a montagem de um menu inserindo itens com a função VisMenuInsert, a partir de um popupmenu já criado fixo diretamente no MDI. No SAM_Createcomplete, do MDI, realizo o while inserindo os menuitens    (com a função) de acordo com os registros de uma table, até aí tudo bem, o menu é criado, consigo chamar as telas com a passagem de parâmetros, porém qdo. chamo qq outra tela de um outro popupmenu os itens do popup dinâmico ñ aparecem mais, utilizo de acordo com o help, a system variable lParam para para obter o handle do popup dinãmico, o pq isso ocorre se a montagem foi feita uma só vez no sam_createcomplete, já tentei armazenar o valor inicial da lParam, para o caso de perda de referência, mas o problema continuou.        Caso alguém já tenha utilizado a função, e queira me auxiliar e ñ entendeu o meu problema, posso detalhar mais, com todo prazer. 

--
Erasmo Bispo de Oliveira Junior
Analista de Sistemas
SoftWay - Verge informática Ltda
(019) 231-9436
[EMAIL PROTECTED]
 

Responder a