WM_USER ¸Þ½ÃÁö

WM_USER ¸Þ½ÃÁö - º¸´Ù °­·ÂÇÑ ÇÁ·Î±×·¥ ÀÛ¼º  
WM_USER ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ¿© º¸´Ù °­·ÂÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇغ¸ÀÚ.

- À©µµ¿ì¿¡¼­ °¡Àå Áß¿äÇÑ °³³äÀº ¸Þ½ÃÁö¶ó´Â °ÍÀÌ´Ù. À©µµ¿ì´Â ´ëºÎºÐ »ç¿ëÀÚÀÇ ÀԷ¿¡ ´ëÇÏ¿© ¹ß»ýÇϴ ȤÀº ½Ã½ºÅÛÀûÀ¸·Î ¹ß»ýÇÏ´Â ¸Þ½ÃÁö¿¡ ÀÇÇÏ¿© µ¿ÀÛÇÑ´Ù. MFCÀÇ Ãʺ¸ÀÚ¸¦ Å»ÃâÇϱâ À§ÇØ ±âº»ÀûÀ¸·Î ¾Ë¾Æ¾ßÇÒ Áö½ÄÀÌ ¹Ù·Î MFCÀÇ ¸Þ½ÃÁö ó¸®ÀÌ´Ù. ÀÌ·± ¸Þ½ÃÁö´Â ´ëºÎºÐ À©µµ¿ì ½Ã½ºÅÛÀÌ ¹ß»ý½ÃŲ´Ù. ¸¶¿ì½º¿¡ ´ëÇÑ, Űº¸µå¿¡ ´ëÇÑ, ½ÇÇà, Á¾·á¿¡ ´ëÇÑ ¸ðµç ¸Þ½ÃÁö°¡ ½Ã½ºÅÛ¿¡ ÀÇÇÏ¿© ¹ß»ýµÈ´Ù. ÀÌ·± ¸Þ½ÃÁöÀÇ Ã³¸® Çڵ鷯 Áï ó¸® ÇÔ¼ö´Â MFC¿¡ ÀÇÇÏ¿© ´ëºÎºÐ ÀÚµ¿À¸·Î ±âº»Æ²ÀÌ Á¦°øµÇ¹Ç·Î ¿ì¸®´Â ´ÜÁö Á¦°øµÈ ÇÕ¼ö¾È¿¡ ¿øÇϴ ó¸®¸¦ ÇÏ´Â Äڵ带 »ðÀÔÇϱ⸸ ÇÏ¸é µÇ´Â °ÍÀÌ´Ù.

- ±×·³  ¿ì¸®°¡ Á÷Á¢ À©µµ¿ìÇÑÅ× ¸Þ½ÃÁö¸¦ ³ÖÀ» ¼ö ÀÖÀϱî? ÀÓÀÇÀÇ Ã³¸®¸¦ ÇÏ´Â ÇØ´ç ÇÔ¼ö¸¦ Á÷Á¢ È£ÃâÀ» ÇØµµ µÈ´Ù. ±×·¯³ª À©µµ¿ìÀÇ °æ¿ì¿¡´Â ÇÔ¼ö¸¦ Á÷Á¢ È£ÃâÇÏÁö ¸øÇÏ´Â ºÎºÐÀÌ Á¾Á¾ÀÖ´Ù. ¿¹¸¦ µé±â´Â ÈûµéÁö¸¸ ³×Æ®¿÷ ÇÁ·Î±×·¥À» Çϰųª º¹ÀâÇÑ Æ®¸®±¸Á¶ÀÇ Å¬·¡½º¸¦ Á¦¾îÇÏ´Â °æ¿ì¿¡ Á¾Á¾ ÇÔ¼ö¸¦ Á÷Á¢ È£ÃâÇÏÁö ¸øÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ±×·± °æ¿ì¿¡  ¹Ù·Î »ç¿ëÀÚ°¡ Á÷Á¢ Á¤ÀÇÇÑ ¸Þ½ÃÁö¸¦ À©µµ¿ì¿¡ ´øÁ® 󸮸¦ ÇÏ°Ô ÇÒ ¼ö°¡ ÀÖ´Ù. ±×·³ Â÷±Ù Â÷±Ù »ìÆì º¸±â·Î ÇÏÀÚ.

- À©µµ¿ì ÇÁ·Î±×·¥¿¡¼­´Â »ç¿ëÀÚ¸¦ À§ÇÏ¿© 0x0400 ~ 0x7fff ÀÇ ¾î¸¶¾î¸¶ÇÑ ¿µ¿ªÀ» »ç¿ëÀÚ ¸Þ½ÃÁö ¿µ¿ªÀ¸·Î Á¦°øÇѰí ÀÖ´Ù. 0x0400Àº WM_USER À̶ó°í Á¤ÀÇ µÇ¾îÀÖ´Ù. ÀÌÁ¦ »ç¿ëÀÚ°¡ ÀÚ½ÅÀÇ ¸Þ½ÃÁö¸¦ Á¤ÀÇÇÒ Â÷·ÊÀÌ´Ù. ¾Æ·¡ Äڵ带 º¸¸é ½±°Ô ÀÌÇØµÉ °ÍÀÌ´Ù.

#define  MY_MESSAGE1 (WM_USER+1)
#defien  MY_MESSAGE2 (WM_USER+2)
#defien  MY_MESSAGE3 (WM_USER+3)

- ÀÌÁ¦ ÀÚ½ÅÀÌ ¿øÇÏ´Â ºÎºÐ¿¡¼­ ÀÌ ¸Þ½ÃÁö¸¦ ´øÁöÀÚ. ¸Þ½ÃÁö¸¦ ´øÁö´Â ¹æ¹ýÀº ¿©·¯ °¡Áö°¡ Àִµ¥ ±×Áß ¾Æ·¡ÀÇ µÎ¸Þ½ÃÁö°¡ °¡Àå ÀÚÁÖ ¾²´Â ¸Þ¼ÒµåÀÌ´Ù.

PostMessage( MY_MESSAGE3 );  // ¸Þ½ÃÁö Å¥¿¡ Áý¾î ³Ö´Â´Ù.
SendMessage( MY_MESSAGE3 );  // ÇØ´Ü Çڵ鷯( ÇÔ¼ö )¸¦ ¸¶Ä¥¶§±îÁö ±â´Ù¸°´Ù.

- À§ÀÇ ÇÔ¼ö´Â MFC CWndÀÇ ¸â¹öÇÔ¼öÀÌ´Ù.ÀÚ¼¼ÇÑ ³»¿ëÀº InfoView¸¦ ½º½º·Î ã¾Æº¸±â ¹Ù¶õ´Ù. Âü°í·Î À§ÀÇ ÇÔ¼ö´Â ÀÚ½ÅÀÇ À©µµ¿ì¿¡¼­¸¸ 󸮰¡ µÈ´Ù. ±×·¸Áö¾Ê°í ºê·Îµå ij½ºÆÃÀ» ÇÏ´Â ¹æ¹ýÀ» MFC¿¡¼­ ãÁú ¸øÇÏ¿´´Ù. ±×·¡¼­ WIN32 API¸¦ È£ÃâÇÏ¿´´Ù.

::PostMessage( HWND_BROADCAST, MY_MESSAGE3, ÀÎÀÚ, ÀÎÀÚ );   
::SendMessage( HWND_BROADCAST, MY_MESSAGE3, ÀÎÀÚ, ÀÎÀÚ );   

- ±×·³ ÇöÀç ÀÚ½ÅÀÇ À©µµ¿ì»Ó ¾Æ´Ï¶ó ´Ù¸¥ ¸ðµç À©µµ¿ì¿¡±îÁö ¸Þ½ÃÁö°¡ Àü´Þ µÇ°Ô µÈ´Ù.

- ´ÙÀ½À¸·Î »ìÆì º¼ ºÎºÐÀº ¸Þ½ÃÁö¸¦ Àâ¾Æ¼­ ½ÇÁ¦ 󸮸¦ ÇÏ´Â Çڵ鷯¿Í ¿¬°áÇÏ´Â ºÎºÐÀÌ´Ù. ´Ùµé ¾Ë°ÚÁö¸¸ MFCÀÇ ¸Þ½ÃÁö 󸮴 ¸Þ½ÃÁö ¸ãÀ̶ó´Â Ư¼öÇÑ ±¸Á¶¸¦ °¡Áö°í ó¸®ÇϰԵȴÙ. »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ ¸Þ½ÃÁö ¿ª½Ã ¸Þ½ÃÁö ¸ÊÀ» ÅëÇÏ¿© Çڵ鷯¿Í ¸ÊÇεǰԵȴÙ. ±×·³ ¸ÊÇÎÀ» ½ÃÀÛÇØº¸ÀÚ.

- ÀÚ½ÅÀÌ ¸¸µç ¸Þ½ÃÁö¸¦ ó¸®ÇÒ À©µµ¿ìÀÇ.cpp ÆÄÀÏÀ» »ìÆìº¸¸é ¸Þ½ÃÁö¸¦ ¸ÊÇÎ ½ÃŰ´Â ºÎºÐÀÌ ÀÖÀ» °ÍÀÌ´Ù. ¾Æ·¡¿Í °°ÀÌ Äڵ带 »ðÀÔÇÏ¿© º¸ÀÚ

BEGIN_MESSAGE_MAP(CMyWindowClass, CMyParentWindowClass)
//{{AFX_MSG_MAP(CMyWindowClass)
ON_MESSAGE( MY_MESSAGE3, OnMyMessageHandler )  // »ðÀÔµÈ ºÎºÐ
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

- ¿©±â¿¡¼­ OnMyMessageHandler´Â »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö°¡ µµÂø ÇßÀ»¶§ ¼öÇàµÇ´Â ÇÔ¼öÀÇ À̸§ÀÌ´Ù. ±× ´ÙÀ½¿¡ .cpp ÆÄÀÏ¿¡ ½ÇÁ¦ Çڵ鷯 ÇÔ¼ö¸¦ Á¤ÀÇÇÏÀÚ.

LRESULT CMyWindowClass :: OnMyMessageHandler( WPARAM wParam, LPARAM lParam )
{
...........
}

- ÇÔ¼ö ÄÚµùÀÌ ³¡³µ´Ù¸é ÀÌÁ¦ ÀÚ½ÅÀÌ ¸¸µç ¸Þ½ÃÁö¸¦ ó¸®ÇÒ À©µµ¿ìÀÇ Çì´õ ºÎºÐ¿¡ ´ÙÀ½°ú °°ÀÌ ÇÔ¼ö¸¦ ¼±¾ðÇÏ¸é ¸ðµç °ÍÀÌ ³¡³µ°ÍÀÌ´Ù.

afx_msg LRESULT OnMyMessageHandler( WPARAM wParam, LPARAM lParam );

- ÁÖÀÇÇÒ °ÍÀº ¾Õ¿¡ afx_msg°¡ ºÙ´Â´Ù´Â °ÍÀÌ´Ù.