Bibliotecas: EasyAndFastGUI - biblioteca para criar interfaces gráficas do usuário - página 8
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
A compilação do ExampleEAF.mq5 resolveu o problema.
Eu estava supondo que teria de compilar uma biblioteca quando quisesse criar coisas próprias com ela.
No entanto, muito obrigado!
Ah, e eu estava me deparando com essa linha de código na parte superior da maioria dos arquivos de biblioteca:
class CWindow;A criação de uma "classe falsa" é um truque para evitar o pesadelo do #include? Como o compilador pode, posteriormente, vincular a classe correta que realmente está sendo usada?
Primeiro, eu gostaria de finalizar o que temos... Afinal de contas, ainda há muitas deficiências.
Tenho algumas observações sobre a arquitetura. As propriedades especificadas do objeto e a imagem exibida têm vida própria, independentemente uma da outra. E uma chamada obrigatória para Update() é necessária, caso contrário, elas permanecerão em realidades paralelas. Acho que isso é errado, considerando que temos um modelo baseado em eventos.A atualização manual (redesenho) não deve ser um pré-requisito, pois só permite que você exiba as alterações imediatamente, mas todas as alterações devem ser exibidas de qualquer forma. Para isso, uma mensagem (evento) deve ser enviada para redesenhar esse objeto, que será processado posteriormente.
Ou seja, mais ou menos assim:
Usando ChangeWindowWidth, altero a largura da janela de modo que ela fique fora do gráfico atual. Depois disso, quando tento mover essa janela, ela se fixa automaticamente na borda esquerda do gráfico. Como desativar isso? Não consigo encontrar um lugar no código.
Usando ChangeWindowWidth, altero a largura da janela de modo que ela saia do gráfico atual. Depois disso, quando tento mover essa janela, ela se fixa automaticamente na borda esquerda do gráfico. Como desativar isso? Não consigo encontrar um lugar no código.
Você precisa reescrever o método CWindow::UpdateWindowXY(). Atualmente, ele está implementado de tal forma que as bordas da janela não podem sair do gráfico quando a janela é movida.
A propósito, sobre a alteração da largura da janela
m_window1.ChangeWindowWidth(NEW_WIDTH); m_window1.Update(true);No MT5 está tudo bem, mas no MT4 é assim
Depois de clicar no cabeçalho, os botões são movidos para o local correto. Você pode me dizer para que lado devo olhar? Onde está implementado o movimento desses botões?
A propósito, sobre a alteração da largura da janela
No MT5 está tudo bem, mas no MT4 é assim
Depois de clicar no cabeçalho, os botões são movidos para o local correto. Você pode me dizer para que lado devo olhar? Onde está implementado o movimento desses botões?
Dê uma olhada no método Moving().
Tente acessar os botões da janela por meio de ponteiros e chame esse método.
Sim, você precisa de um aumento proporcional na largura de todas as colunas ou apenas da última coluna. É preferível a última opção.
Mas, na versão atual, é problemático implementar isso sozinho, porque não encontrei um método em sua classe para obter a largura atual da coluna, e todos os campos são privados. Em geral, pelo menos esse método deve ser adicionado.
É assim que você pode tentar implementar o que precisa agora:
Observe o método Moving().
Tente acessar os botões da janela por meio de ponteiros e chame esse método.
Sim, é isso :) Obrigado!
Achei que já tinha examinado tudo e deixado passar o mais óbvio :)
É assim que você pode tentar perceber o que precisa agora:
É apenas uma largura de coluna fixa, mas estávamos falando sobre alterar dinamicamente a largura das colunas com base em sua largura anterior. No entanto, já completei a classe adicionando o método int ColumnWidth(int i)
Boa tarde.
O problema é maior :)
Criamos um objeto dinâmico, por exemplo, um rótulo
Mas como excluí-lo?
Eu o excluo dessa forma.
Mas depois de excluí-lo, ele trava e diz que o acesso ao ponteiro está incorreto.
Pelo que entendi, CWndContainer::AddToElementsArray adiciona o objeto às matrizes comuns, mas Delete() não o exclui de lá, e a janela tenta acessar o objeto. Não consigo encontrar nenhuma outra função semelhante a Delete().
Como excluir um objeto corretamente?