Discussão do artigo "Gerenciando o Terminal MetaTrader Via DLL"

 

Novo artigo Gerenciando o Terminal MetaTrader Via DLL foi publicado:

O artigo trata sobre o gerenciamento dos elementos da interface de usuário MetaTrader através de uma biblioteca DLL auxiliar, usando o exemplo de como alterar as configurações de entrega das notificações Push. O código fonte da biblioteca e o script como exemplo estão anexados ao artigo.

Temos uma lista de ID MetaQuotes contendo mais de quatro endereços de entrega. Como sabemos, a função SendNotification usa apenas as IDs definidas na guia "Notificações" da janela "Opções". Assim, você pode enviar quatro notificações Push de cada vez às IDs especificadas anteriormente por meio da MQL. Vamos tentar corrigir isso.

O problema pode ser resolvido de duas maneiras - nós podemos desenvolver uma função para entrega de notificação push a partir do zero, ou alterar as configurações do terminal e usar a função padrão. A primeira opção é bastante demorada e carece de universalidade. Portanto, eu selecionei a segunda opção. As configurações do terminal podem também ser alterada de várias maneiras, de acordo com minha experiência, isso pode ser feito através da interface de usuário ou substituindo os valores na memória do processo. Trabalhando com a memória parece muito melhor, uma vez que permite aos usuários que evitem as janelas que ficam piscando. Porém pode perturbar o funcionamento de todo o terminal no menor erro. A pior coisa que pode acontecer quando se trabalha via UI é o desaparecimento de uma janela ou um botão.

Neste artigo vamos olhar para a gestão do terminal através da interface de usuário usando uma biblioteca DLL auxiliar. Em particular, vamos considerar a alteração das configurações. A interação com o terminal vai ser realizada da maneira habitual, ou seja, utilizando as janelas e os componentes, Não poderá acontecer nenhuma interferência com o processo do terminal. Este método pode ser aplicado para resolver outros problemas também.

1.3. Trabalhando com um Menu

Tal como todos os outros componentes, a trabalho com um menu começa após um "parent handle" (uma certa janela) ter sido encontrado. Então devemos encontrar o item e sub-item correspondente ao menu e realizar uma seleção.

Observe: a quantidade dos itens do menu do terminal altera conforme um gráfico de janela é expandido ou não (ver Fig. 2). Enumeração de item começa a partir do 0 (zero).

Fig. 2. Alterando a quantidade de itens do menu

Fig. 2. Alterando a quantidade de itens do menu

Se a quantidade de itens do menu é alterada, o número de índice de itens nas Ferramentas é alterado também. Portanto devemos considerar a quantidade total de pontos usando a função GetMenuItemCount (HND: HMEnu), transmitidos pelo "handle" de menu.

Autor: Galina Bobro