Fórum Como passar o FOCO (com tracejado)??? #368045

30/01/2009

0

E aí pessoal, tô tentando mas não consigo.

Os botões do form do outro aplicativo ao passar o mouse ele muda de cor, quando uso o comando:

var
  h : hWnd;
begin
  h := FindWindow(nil,´caption da janela´);

  // para ativar a janela (não funfa)
  PostMessage(h, WM_ACTIVATEAPP, 0, 0);
  // "funciona" como a tecla TAB
  PostMessage(h, WM_NEXTDLGCTL, 0, 0 );
end;

Bom, ele muda para o outro botão que muda a cor, mas o tracejado indicando que o foco está naquele botão não aparece. Se eu pressionar a tecla TAB ele aparece, mas preciso fazer isso via código.

O que eu quero fazer realmente é alcançar um droga de um componente TCheckButton, quando dou TAB ele passa pelos botões e passa por ele, mas usando os comandos acima só fica nos botões, eu penso que, se eu deixar o botão com o tracejado e usar:

"PostMessage(hh0, WM_NEXTDLGCTL, 0, 0 );"

vai funcionar, preciso colocar este tracejado indicando o foco no botão, alguém poderia me orientar com isso???

Grato

//  SendMessage(hh1, WM_KEYDOWN, VK_SELECT, 1);
//  SendMessage(hh1, WM_KEYDOWN, VK_RETURN, 0);




Onjahyr

Onjahyr

Responder

Posts

30/01/2009

Wdrocha

Bom dia...

no lugar de

/ para ativar a janela (não funfa)
PostMessage(h, WM_ACTIVATEAPP, 0, 0);

Vc pod usar :

SetForegroundWindow (h);

Poderia ficar assim...

If SetForegroundWindow (h) Then

PostMessage(h, WM_NEXTDLGCTL, 0, 0 );


Espero q isso ajude em algo...


flw


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar