Oi Anatoli,
Estou muito interessado em usar a interface gráfica. Mas ela não funciona em minha aplicação. A janela do painel não é movida. Também no programa de amostra "InfoPanel.mq5" (com a propriedade Movable definida como true) nada acontece. O Panel aparece, mas não pode ser movido. Talvez você tenha uma ideia do que pode estar errado? (Usei o Windows10 e o metatrader ver 5.0 build 1340)
Atenciosamente, Roland
Olá a todos,
Obtive os códigos-fonte da última Parte (4). Agora está tudo funcionando bem.
Atenciosamente, Roland
Qual é a forma de processar o movimento do mouse usando a Biblioteca Padrão? Eu testei com o arquivo localizado em Experts\Examples\Controls. Modificando a classe CListView da biblioteca padrão.
Ocorre que o evento ON_MOUSE_FOCUS_SET não é processado quando uso somente a função .ChartEvent(...).
Quando uso a função .OnEvent(...) o evento ON_MOUSE_FOCUS_SET é processado, mas não consigo mover a janela.
Quando uso as duas funções, primeiro chamo .ChartEvent() e depois .OnEvent() o evento ON_MOUSE_FOCUS_SET é processado, porém quando clico no botão de incremento e decremento, está alterando mais de um passo.

virtual bool OnItemFocusSet(const int index); //--- redraw bool Redraw(void); bool RowState(const int index,const bool select); bool CheckView(void); }; //+------------------------------------------------------------------+ //| Common handler of chart events | //+------------------------------------------------------------------+ EVENT_MAP_BEGIN(CListView) ON_INDEXED_EVENT(ON_CLICK,m_rows,OnItemClick) ON_INDEXED_EVENT(ON_MOUSE_FOCUS_SET,m_rows,OnItemFocusSet) EVENT_MAP_END(CWndClient)
bool CListView::OnItemFocusSet(const int index) { //--- select "row" Select(index+m_offset); //--- send notification EventChartCustom(CONTROLS_SELF_MESSAGE,ON_CHANGE,m_id,0.0,m_name); //--- handled return(true); }
Tenho uma pergunta: ao alterar o quadro de tempo (reinicialização), o bloco voa para o canto superior esquerdo (x=0, y=0)... como implementar corretamente que as coordenadas atuais do bloco seriam salvas?
HI: há duas opções na minha cabeça:
1) gravar as coordenadas em variáveis globais...
2) gravar em um arquivo...
3) Estou curioso para saber qual é a sua solução profissional para esse problema! Como você a implementaria?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Interfaces Gráficas I: Animação na Interface Gráfica (Capítulo 3) foi publicado:
No artigo anterior, nós começamos a desenvolver uma classe de formulário para os controles. Neste artigo, nós vamos continuar a desenvolver esta classe e preenchê-la com os métodos para mover um formulário sobre a área do gráfico. Em seguida, integraremos este componente da interface para o núcleo da biblioteca. Além disso, nós vamos garantir que os controles do formulário mudem de cor quando o cursor do mouse estiver pairando sobre eles.
Agora, não deve haver nada que possa interromper o movimento do formulário:
Fig. 1. Teste de Movimento do Formulário sobre o Gráfico
Às vezes, acontece que o tamanho da janela do gráfico tem que ser alterado. Em tais momentos, é gerado o evento para alterar as propriedades do gráfico CHARTEVENT_CHART_CHANGE. No momento, isto não é controlado de qualquer maneira e uma situação pode ocorrer quando o formulário ultrapassar parcialmente ou completamente os limites da janela do gráfico. Para evitar isso, este tipo de evento deve também ser verificado no manipulador do gráfico de evento CWindow::OnEvent().
Autor: Anatoli Kazharski