Discussão do artigo "Usando Layouts e Containers para Controles de GUI: A Classe CBox" - página 2
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
Esse código não é compilado. Compilação 1702.
'pipvaluecalculator.mq5' pipvaluecalculator.mq5 1 1
...
'm_client_area' - erro de acesso a membro privado PipValueCalculator.mqh 118 60
'm_client_area' - erro de acesso a membro privado PipValueCalculator.mqh 118 91
'm_client_area' - erro de acesso a membro privado PipValueCalculator.mqh 129 72
'm_client_area' - erro de acesso a membro privado PipValueCalculator.mqh 148 75
'm_client_area' - erro de acesso a membro privado PipValueCalculator.mqh 168 77
'm_client_area' - erro de acesso a membro privado PipValueCalculator.mqh 187 72
6 erro(s), 0 aviso(s) 7 1
Como observação adicional, a menos que eu tenha esquecido, você deve especificar onde colocar os arquivos. Precisamos tentar examinar o código para saber que precisamos criar uma pasta "Layouts" no Include e colocar o arquivo Box.mqh dentro dela.
Estou usando a compilação 1755.
Agora o membro m_client_area na classe CDialog em Controls\Dialog.mqh é privado e novos métodos foram criados para obter as propriedades Width e Height.
O código em questão não está disponível em março de 1702
'pipvaluecalculator.mq5' pipvaluecalculator.mq5 1 1
...
'm_client_area' - kesalahan akses anggota pribadi PipValueCalculator.mqh 118 60
'm_client_area' - kesalahan akses anggota pribadi PipValueCalculator.mqh 118 91
'm_client_area' - kesalahan akses anggota pribadi PipValueCalculator.mqh 129 72
'm_client_area' - kesalahan akses anggota pribadi PipValueCalculator.mqh 148 75
'm_client_area' - kesalahan akses anggota pribadi PipValueCalculator.mqh 168 77
'm_client_area' - kesalahan akses anggota pribadi PipValueCalculator.mqh 187 72
6 erro (s), 0 aviso (s) 7 1
Jadi catatan, kecuali jika saya melewatkannya, anda harus menentukan di mana tempat file-file tersebut. Sebagai catatan, kecuali jika saya melewatkannya, Anda harus menentukan di mana menempatkan file-file tersebut. O usuário pode mencionar o código para mencionar a pasta "Layouts" no Include e mencionar o arquivo Box.mqh no arquivo.
Encontrei um problema com esse útil complemento.
Peço orientação àqueles que conhecem os controles padrão.
Como esse complemento com painéis usa as classes padrão CWnd, CWndClient, presumo que o conhecimento de sua estrutura interna pode ser suficiente para entender onde está o "problema".
A essência do problema. Pegamos o programa Controls2.mq5 do artigo (para compilação, também precisamos de ControlsDialog2.mqh e Box.mqh), compilamos e executamos.
Quase tudo funciona bem, exceto o "datapicker". Ele só abre e fecha, mas, no estado aberto, não reage a cliques, pulando eventos para os controles subjacentes.
A demonstração original semelhante do MQ (Experts/Examples/Controls.mq5) funciona normalmente com o "datapicker".
Quase tudo funciona bem, exceto o "datapicker". Ele só abre e fecha, mas, no estado aberto, não reage aos pressionamentos, pulando eventos para os controles subjacentes.
A demonstração original semelhante do MQ (Experts/Examples/Controls.mq5) funciona normalmente com o "datapicker".
A questão foi removida. No CDatePicker não há chamada BringToTop quando o menu suspenso é expandido, como é feito no CComboBox, por exemplo. No exemplo padrão, o CDatePicker funciona devido ao fato de sua inicialização ter sido movida (intencional ou acidentalmente) após a criação da "leafbox", que está topologicamente abaixo dele. E os controles em CWndContainer::OnMouseEvent são ignorados do último adicionado ao primeiro.
Para corrigir isso normalmente, seria necessário substituir o CDatePicker::ListShow, mas ele não é virtual. Temos que redefinir CDatePicker::OnClickButton e adicionar BringToTop lá. No entanto, não podemos fazer isso corretamente, assim como com qualquer método virtual na biblioteca padrão, porque todas as variáveis de membro são declaradas privadas. Em particular, é impossível escrever:
porque m_drop não está disponível. Temos que chamar BringToTop tanto ao abrir quanto ao recolher.
e há alguns erros: