SendMessage와 PostMessage

2024. 5. 26. 18:54·C#/Window
반응형

윈도우 프로그래밍에서 메시지는 윈도우 간 통신과 이벤트 처리의 핵심적인 역할을 합니다. SendMessage와 PostMessage 함수는 윈도우 간 메시지를 전달하는 데 사용되는 두 가지 주요 API입니다. 

 

SendMessage

특정 윈도우에 메세지를 직접 전달하고 즉시 결과를 반환합니다. 즉, 메세지가 처리될 때까지 기다립니다.

[DllImport("user32.dll")]
public static extern IntPtr SendMessage(int hwnd, int wMsg, int wParam, string lParam);

// hwnd 메세지를 전달할 윈도우의 핸들
// wMsg 잔달할 메세지 ID
// wParam 메세지와 함께 전달할 추가 데이터
// lParam 메세지와 함께 전달할 추가 데이터
// 반환 값 : 메세지 처리 결과를 나타내는 IntPtr 값

 

PostMessage

특정 윈도우에 메세지를 전달하고 즉시 반환하지 않습니다. 메세지 큐에 메세지를 추가하고 메세지 처리 루프에서 처리될 때까지 기다립니다.

[DllImport("user32.dll")]
public static extern uint PostMessage(int hwnd, uint msg, int wParam, int lParam);

// 매개변수는 SendMessage와 같습니다. 
// 반환값 : 0(성공) 또는 오류 코드

 

SendMessage vs PostMessage

구분 SendMessage PostMessage
동기/ 비동기 동기 비동기
반환값 메세지 처리 결과 0 또는 오류코드
사용 시점 즉각적인 결과가 필요한 경우 즉각적인 결과가 중요하지 않거나 메세지 큐에 메세지를 추가하고 싶은 경우

 

주의사항

  • SendMessage와 PostMessage 함수를 사용할 때는 윈도우 핸들을 정확하게 지정해야 합니다. 잘못된 핸들을 지정하면 예상치 못한 동작을 일으킬 수 있습니다.
  • 메시지 ID와 추가 데이터는 전달하려는 메시지에 따라 정확하게 지정해야 합니다. 잘못된 값을 지정하면 오류가 발생할 수 있습니다.

 

저작자표시 비영리 변경금지 (새창열림)

'C# > Window' 카테고리의 다른 글

Windows Forms의 ComboBox에 아이템 추가하는 방법들  (2) 2024.07.29
.NET 프로젝트의 출력 폴더 이름 변경하기  (0) 2024.07.28
Windows Forms PictureBox  (3) 2024.07.24
RichTextBox에 텍스트 추가하고 자동 스크롤하기  (0) 2024.07.23
비동기 프로그래밍에서 Task.Delay의 독립적인 실행  (0) 2024.07.22
'C#/Window' 카테고리의 다른 글
  • .NET 프로젝트의 출력 폴더 이름 변경하기
  • Windows Forms PictureBox
  • RichTextBox에 텍스트 추가하고 자동 스크롤하기
  • 비동기 프로그래밍에서 Task.Delay의 독립적인 실행
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    list
    devlife
    상품 리뷰 크롤링
    programming101
    리뷰관리
    파이썬
    쇼핑몰리뷰
    programmerlife
    스크립트 실행 순서
    codingcommunity
    스마트스토어리뷰
    셀레니움
    리뷰이관
    Python
    라떼우유
    unity
    카페24리뷰
    믈레코비타멸균우유
    codingtips
    유니티
    C#
    카페24리뷰이관
    긴유통기한우유
    리스트
    learntocode
    스크립트 실행
    ipcamera
    rtsp
    appdevelopment
    cv2
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
SendMessage와 PostMessage
상단으로

티스토리툴바