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
Encontrei uma janela interessante. É quase impossível apanhar qualquer coisa dentro dele. A janela é chamada de "Salvar como". Você pode me dizer como pressionar o botão "Salvar"?
Se você selecionar o botão salvar especificamente, você tem o código do botão 00000001
Mas nada acontece quando o chamamos por este código. O que é esta janela sem nome?
Esta é uma caixa de diálogo popup. Seu descritor de sistema pode ser obtido usando a função WinAPI GetLastActivePopup(int hWnd).
Aqui está um exemplo de como usar esta função:
As caixas de seleção podem ser assinaladas programmaticamente se não estiverem presentes.
Quais funções Win API são usadas para fazer isso?
Encontrou uma função no WinAPI:
Função CheckDlgButton
Descrição:função CheckDlgButton(Dlg: HWnd; IDButton: Integer; Verificação: Word);
Marca ou desmarca um controle de botão ou muda o estado de um controle de três botões.
Parâmetros:Dlg: A caixa de diálogo que contém o botão.
IDButton: O controle modificável do botão.
Verificações: eliminado(0), marcado(1), sombreado(2).
Antes de executá-lo, qual a função de verificar o estado do botão. No meu caso, está na caixa de seleção.
na continuação do tema API
ao salvar - se isso acontecer novamente, a questão surgirá!
exceto como
( arquivo existe substituir )
acertar YES automaticamente
Encontrou uma função no WinAPI:
Função CheckDlgButton
Descrição:função CheckDlgButton(Dlg: HWnd; IDButton: Integer; Check: Word);
Rotula ou desmarca um controle de botão ou muda o estado de um controle com três botões.
Parâmetros:Dlg: A caixa de diálogo que contém o botão.
IDButton: O controle modificável do botão.
Verificado: eliminado(0), marcado(1), sombreado(2).
Antes de executá-lo, qual a função a ser usada para verificar o estado do botão. No meu caso, na caixa de seleção.
Você pode usar a função IsDlgButtonChecked para determinar o estado atual do interruptor:
Esta função retorna o estado do interruptor com o botão idButton localizado na caixa de diálogo hdlg. Se o interruptor estiver em um estado desativado, um valor nulo é devolvido. Um valor de 1 é devolvido para uma chave que está ligada. Um valor de 2 corresponde a um interruptor inativo, mostrado em cinza. No caso de um erro, um valor negativo de -1 é devolvido.
---
Um exemplo de como o IsDlgButtonChecked funciona pode ser visto aqui
http://frolov-lib.ru/books/bsp/v12/ch3_2.htm
Decidiu voltar ao tema do estudo do WinAPI.
Estou tentando usar o Microsoft Spy++ v.9.00.21022 para encontrar o identificador da caixa de seleção "Otimização" a fim de verificar se ela está marcada ou não.
Eu faço o seguinte passo a passo.
1. Terminal iniciado.
2. Abriu a janela do testador.
3. Em Spy++ procurei uma janela e apontei para o elemento "Otimizar".
Clique no botão OK.
4. Passando pelas abas da próxima janela
Não consigo descobrir onde está meu código para este botão.
Ilnur ,YuraZ e outros me ensinam a identificar este código descritor que eu preciso.
Por que peço para ensiná-los, não para apontar especificamente para os códigos, porque quero aprender a identificar outros elementos. Embora se você especificar, talvez seja mais fácil para mim encontrá-los mais tarde, sabendo o que procurar e onde procurar....
Aqui eu dei um exemplo de código sobre como encontrar o identificador do botão "Start".
A mesma figura mostra como encontrar o identificador do controle.
Todos os controles localizados na janela do testador de estratégia são definidos da mesma forma.
Por exemplo, de acordo com a figura acima, o identificador da caixa de seleção "Otimização" (guia Geral) é 0x405.
Já resolvi o problema. A única coisa que não consigo encontrar códigos de 2 botões - data para teste e otimização de "Data" a "Data". Saídas do programa 00000001. Ilnur me diz os códigos destes botões.
Sim, de fato, os identificadores desses itens são os mesmos. Portanto, não podemos utilizar GetDlgItem() neste caso.
Isto deixa a opção de identificá-los usando o FindWindowExA(). No entanto, a principal questão é se precisamos identificá-los.
Não é possível gerenciar esses itens, ou seja, especificar o período de otimização ou teste, por meio do WinAPI em MQL.
Embora eu possa estar errado.
Sim, de fato, os identificadores desses itens são os mesmos. Portanto, não podemos utilizar GetDlgItem() neste caso.
Isto deixa a opção de identificá-los usando o FindWindowExA(). No entanto, a principal questão é se precisamos identificá-los.
Falta a possibilidade de gerenciar esses itens, ou seja, de especificar o período de otimização ou teste, por meio do WinAPI em MQL.
Mas posso estar errado.
encontrar um item com ID - 0x0577 (clique no botão Change Expert)
e clique em NextWindow 3 vezes apenas para entrar no campo De data: depois tente NextWindow mais duas vezes e entraremos no campo Até data:
em ambos os casos basta preencher os campos de data
SetWindowTextA( hwndEditDATEbeg, sDateBeg);
SendMessageA(hwndEditDATEbeg, EN_UPDATE, _ID_EDIT_HEX_DATEbeg, 0);
SendMessageA(hwndEditDATEbeg, EN_CHANGE, _ID_EDIT_HEX_DATEbeg, 0);
..
No MSQL5 eu gostaria muito de ter uma ferramenta embutida para comunicação com o testador...