델파이에서 SendMessage 함수를 활용한 윈도우 메시지 전송 방법
SendMessage 함수는 다른 윈도우로 메시지를 전송하여
효과적인 통신을 가능하게 해줍니다.
SendMessage
SendMessage 함수는 지정된 윈도우로 메시지를 보내는 역할을 합니다.
이 함수는 윈도우의 핸들, 전송할 메시지,
메시지 매개변수 및 메시지 데이터를 인자로 받습니다.
메시지를 보내면 수신측 윈도우의 메시지 처리기(Window Procedure)가
호출되어 해당 메시지를 처리합니다.
[델파이에서 SendMessage 함수 사용하기] 델파이에서는
WinAPI를 사용하여 SendMessage 함수를 호출할 수 있습니다.
다음은 SendMessage 함수를 활용하여 다른 윈도우로 메시지를 보내는 예제입니다
const
WM_MY_MESSAGE = WM_USER + 1; // 사용자 정의 메시지 상수 정의
procedure TForm1.Button1Click(Sender: TObject);
var
hWnd: HWND;
wParam: WPARAM;
lParam: LPARAM;
begin
// 대상 윈도우의 핸들 가져오기
hWnd := FindWindow(nil, '대상 윈도우 제목');
if hWnd <> 0 then
begin
// 메시지 전송
wParam := 0;
lParam := 0;
SendMessage(hWnd, WM_MY_MESSAGE, wParam, lParam); end;
end;
procedure TForm1.WndProc(var Msg: TMessage);
begin
inherited;
if Msg.Msg = WM_MY_MESSAGE then
begin
// 메시지 수신 처리
ShowMessage('메시지를 받았습니다!');
end;
end;
위의 예제에서는 '대상 윈도우 제목'이라는
제목을 가진 윈도우에 대해 SendMessage 함수를 사용합니다.
메시지를 보낼 때는 윈도우의 핸들, 사용자 정의 메시지(WM_MY_MESSAGE),
그리고 필요에 따라 wParam과 lParam 값을 설정하여 메시지를 전송합니다.
메시지를 받기 위해 수신측 윈도우의 WndProc 메서드를
오버라이딩하여 메시지 처리기를 구현합니다.
위의 예제에서는 WM_MY_MESSAGE 메시지를 수신하면
간단한 메시지 박스를 통해 메시지를 받았음을 알려줍니다.
이처럼 SendMessage 함수를 사용하면
다른 윈도우로 메시지를 전송하여 윈도우 간의
효과적인 통신이 가능해집니다.
이상으로 델파이에서 SendMessage 함수를 활용한
윈도우 메시지 전송 방법에 대해 설명하였습니다.
메시지 기반의 통신은 윈도우 애플리케이션 개발에 있어서 중요한 부분이므로,
윈도우 API를 자유롭게 활용하여 다양한 기능을
개발하는 데에 활용해보시기 바랍니다.
'Delphi Tip > Windows' 카테고리의 다른 글
시스템 커스(Help) 바꾸기 (0) | 2024.01.30 |
---|---|
가상키 코드(Virtual Keys) (0) | 2023.07.11 |
윈도우즈 GUI 기본 폰트정보 구하기 (0) | 2023.06.07 |
윈도우버전 확인하기 (0) | 2022.02.03 |
델파이 윈도우 메세지 받는 방법 (0) | 2021.08.11 |
댓글