Camaradas,
O SendMessage é uma função disponibilizada pela plataforma windows (API) que nos permite interagir sobre objetos Window, ou seja, todos os objetos que possuem Handle, seja esse handle de qual tipo for: HWND, HFILE, HMENU, HHOOK, HGLOBAL, HLOCAL, HINST e outros vários. Diante isso podemos entender que o acesso a certos objetos pode ser feito através da utilização dessa API.
| Delphi | | copy code | | ? |
| 1 | {$EXTERNALSYM SendMessage} |
| 2 | function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; |
Basicamente o SendMessage necessita apenas do Handle e da Mensagem ( Message ), os outros 2 parametros serão dependentes da Mensagem enviada.
Um exemplo:
| Delphi | | copy code | | ? |
| 1 | SendMessage(btn2.Handle, CN_COMMAND, BN_CLICKED, 0); |
Envia uma mensagem do tipo CN_COMMAND para o btn2 (no nosso caso esse é um TButton) com o parametro BN_CLICKED que faz o TButton btn2 entender que se deve executar o procedimento de click.
Outro exemplo interessante:
| Delphi | | copy code | | ? |
| 1 | SendMessage(form1.Handle, WM_SETTEXT, 0, Integer(PChar('Novo Título'))); |
O código acima modifica o título do TForm form1 para o valor “Novo Título”.
A infinidade de coisas que dá pra se fazer com essa pequena API é incalculável.
Se quiser ver como é vasta a capacidade proponha-me um problema! Eu ficarei grato pelo desafio.
Abraço a todos
