|
1.¿ä¾à ¼·Î´Ù¸¥ À©µµ¿ì³¢¸®(´Ù¸¥ ÇÁ·Î¼¼½º¿¡µµ Àû¿ëµÊ) µ¥ÀÌÅ͸¦ ÁÖ°í ¹Þ°íÀÚ ÇÒ¶§ À©µµ¿ì¿¡¼ Á¦°øÇÏ´Â WM_COPYDATA¸¦ »ç¿ëÇØ º¸±â·Î ÇÑ´Ù. 2.º»¹® ÇϳªÀÇ À©µµ¿ì¿¡´Â À©µµ¿ì°¡ °ü¸®ÇÏ´Â ³í¸®Àû ÁÖ¼Ò°ø°£ÀÌ ÀÖ´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯¶§¹®¿¡ ÇϳªÀÇ À©µµ¿ì¿¡¼ ´Ù¸¥ À©µµ¿ì·Î Æ÷ÀÎÅ͸¦ ³Ñ°ÜÁÖ°íÀÚ ÇÑ´Ù¸é ±×¸® ½¬¿î¹æ¹ýÀÌ ¾Æ´ÔÀ» ¾Ë ¼ö ÀÖ´Ù. ÇÏÁö¸¸, WM_COPYDATA¸¦ »ç¿ëÇÏ¸é ³í¸®Àû ÁÖ¼Ò°ø°£¿¡ »ó°ü¾øÀÌ ´Ù¸¥ À©µµ¿ì·Î ÇÑÂÊÀÇ ³í¸®Àû ÁÖ¼Ò¸¦ ³Ñ±æ ¼ö ÀÖ´Ù. ¿¹Á¦¸¦ »ìÆìº¸±â·Î ÇÏÀÚ. 3.¿¹Á¦
// source window¿¡¼..
void CSourceWnd::Write(const void* lpBuf, UINT nCount)
{
CWnd *pTraceWnd = CWnd::FindWindow(TRACEWND_CLASSNAME, NULL);
if (pTraceWnd) {
COPYDATASTRUCT cds;
cds.dwData = ID_COPYDATA_TRACEMSG /* Flag ¿ëµµ */;
cds.cbData = nCount;
cds.lpData = (void*)lpBuf;
pTraceWnd->SendMessage(WM_COPYDATA,
(WPARAM)AfxGetApp()->m_pMainWnd->GetSafeHwnd(),
(LPARAM)&cds);
} else {
AfxMessageBox("À©µµ¿ì¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù.");
}
}
----------------------------------------------------------
//////////////////////////////////////////////////////
// target windows¿¡¼..
// ¸Þ¼¼Áö Çڵ鸵 ¼³Ä¡
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_MESSAGE(WM_COPYDATA, OnTraceMsg)
.
.
.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
LRESULT CMainFrame::OnTraceMsg(WPARAM wParam, LPARAM lParam)
{
COPYDATASTRUCT* pcds = (COPYDATASTRUCT*)lParam;
// pcds ¸¦ »ç¿ëÇÑ´Ù..
return 0;
}
4.Âü°í MSJ 1996³â 1¿ùÈ£ C/C++ Q&A - 2001.08.06 Smile Seo - |