SPRING :: NOTE

[MFC] SendMessage 사용법 본문

Development Language/C · C++ · MFC

[MFC] SendMessage 사용법

RAYZIE 2016. 10. 24. 14:32
반응형

SendMessage와 PostMessage의 차이점은 다른 블로그에서 습득하길 바란다.

본 포스팅에서는 소스만 나열한다.


사용하고자 하는 함수를 생성한다.

LRESULT [DlgName]::OnUserFun(WPARAM wParam, LPARAM lParam)
{
	// 사용자 함수 구현부 (SendMessage를 이용해 실행 할 함수)

	return 0;

}

그다음의 Message ID를 정의한다.

#define M_MSG_MSG1 (WM_USER+1)

메세지맵에 사용하고자 하는 함수 및 메세지 아이디 정의

BEGIN_MESSAGE_MAP(CPDlg1553B, CXTPResizeDialog)
	ON_WM_ERASEBKGND()
	ON_BN_CLICKED(IDC_BUTTON1, &CPDlg1553B::OnBnClickedButton1)
	ON_MESSAGE(M_MSG_MSG1, OnUserFun)
END_MESSAGE_MAP()



첫번째 방법


마지막으로 사용하고자 하는 부분에 SendMessage 출력

SendMessage(M_MSG_MSG1);


다른 블로그에서는 어렵게 설명되어있는데, 이 처럼 사용하면 된다.

나도 잘 모르겠다.

그냥 된다.

Dlg 포인터 받고 싶으면, 그냥 쓰던대로

pDlg->SendMessage();

하면 먹힌다.



두번째 방법


::SendMessage(pMainDlg->GetSafeHwnd(),WM_SEND_MSG, SMSG_DLG_INFO, 0); // (Send Message Handle, MSG define, param, 0)

// sendmessage
LRESULT CMainFrame::resultMsg(WPARAM wParam, LPARAM lParam)
{
	switch (wParam)
	{
	case SMSG_DLG_INFO:
		MessageBox("hello");
		break;
	default:
		break;
	}
	return 0;
}
반응형
Comments