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); }
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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