SendNotifyMessage 동일한 스레드에서 생성된 윈도우에게 메시지를 보낼 때는 동기식이지만 다른 스레드의 윈도우에게 보낼때는 PostMessage와 같이 비동기식이다.

SendMessageCallback 비동기식으로 작동하며 서버가 메시지 처리가 끝나거나 함수가 실패하였을 때 다섯 번째 인자에 설정된 콜백함수 실행

PostMessage 특정 메시지를 메시지 큐에 넣고 바로 리턴한다. 비동기식식

'NativeCode > mfc' 카테고리의 다른 글

컨트롤러 투명화 & 색 변화 시키기  (0) 2010.03.18
CStringArray  (0) 2010.03.18
SendMessage  (0) 2010.03.18
WM_COPYDATA  (0) 2010.03.18
Message Map  (0) 2010.03.18

받는 쪽

#define WM_MESSGAE WM_USER + 1

LRESULT OnRequestFromClient( WPARAM wParam, LPARAM lParam );

ON_MESSAGE( WM_MESSAGE, OnRequestFromClient)


보내는 쪽

HWND hWnd = ::FindWindow( NULL, "Process Name" );

::SendMessage( hWnd, WM_MESSAGE, 0, 0 );

'NativeCode > mfc' 카테고리의 다른 글

CStringArray  (0) 2010.03.18
SendMessage 종류  (0) 2010.03.18
WM_COPYDATA  (0) 2010.03.18
Message Map  (0) 2010.03.18
MFC Exception  (0) 2010.03.18

받는 쪽

strcut INFO

{

char data[ 100];

}

#define WM_MESSAGE WM_USER + 1

afx_msg bool OnCopyData( CWnd* pWnd, COPYDATASTRUCT *pCopyDataStruct );

ON_WM_COPYDATA()


bool OnCopyData( CWnd *pWnd, COPYDATASTRUCT *pCopyDataStruct )

{

INFO a;


switch( pCopyDataStruct->dwData )

{

case WM_MESSAGE :

memcpy( &a, pCopyDataStruct->lpData);

break;

}


return CDialog::OnCopyData(pWnd, pCopyDataStruct);

}


보내는 쪽

HWND hWnd = ::FindWindow( NULL, "Process Name" );

INFO a;

strcpy( a.data, "Aaaaaaaaaaa" );


COPYDATASTRUCT b;

b.dwData = WM_MESSAGE ;

b.cbData = sizeof( INFO );

b.lpData = &a;


::SendMessage( hWnd, WM_COPYDATA, ( WPARAM )m_hWnd, ( LPARAM )&b );

'NativeCode > mfc' 카테고리의 다른 글

SendMessage 종류  (0) 2010.03.18
SendMessage  (0) 2010.03.18
Message Map  (0) 2010.03.18
MFC Exception  (0) 2010.03.18
MFC Exception 클래스 확장하기  (0) 2010.03.18

+ Recent posts