ÀÌ ³ëÆ®¿¡¼´Â MFC Windows ¸ÅÇÎ Áö¿ø ·çƾ °³Ã¼ ÇÚµéÀ» c + + °³Ã¼¡£
¹®Á¦
Windows °³Ã¼ ó¸®s ÀϹÝÀûÀ¸·Î Ç¥Çö µË´Ï´Ù. MFC Ŭ·¡½º´Â c + + °³Ã¼¿Í Windows °³Ã¼ ÇÚµéÀ» ·¡ÇÎÇÕ´Ï´Ù. MFC Ŭ·¡½º ¶óÀ̺귯¸®¿¡ ´ë ÇÑ ÇÚµé ¹èÄ¡ ±â´É ƯÁ¤ ÇÚµéÀ» »ç¿ë ÇÏ ¿© Windows °³Ã¼¸¦ ·¡ÇÎÇÏ´Â c + + °³Ã¼¸¦ ãÀ» ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°ø ÇÕ´Ï´Ù. ±×·¯³ª °Å±â¿¡ ½Ã°£ ¶§ Windows °³Ã¼°¡ ¾ø´Â c + + ·¡ÆÛ °³Ã¼¸¦, ¹× c + + ·¡ÆÛ ¿ªÇÒÀ» Àӽà °³Ã¼¸¦ ¸¸µçÀÌ ½Ã°£¡£
Windows °³Ã¼ ÇÚµé ¸ÊÀ» »ç¿ë ÇÏ´Â:
ÀÌ·¯ÇÑ °³Ã¼ Áß Çϳª¿¡ ´ë ÇÑ ÇÚµéÀ» °¨¾ÈÇÒ ¶§, FromHandleÁ¤Àû ¸â¹ö ÇÔ¼ö¸¦ È£Ãâ ÇÏ ¿© ÇÚµéÀ» ·¡ÇÎÇÏ´Â MFC °³Ã¼¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÁÖ¾îÁø HWND hWnd ¸¦ È£Ãâ:
CWnd::FromHandle(hWnd)
hWnd¸¦ ·¡ÇÎÇÏ´Â CWnd ¿¡ ´ë ÇÑ Æ÷ÀÎÅ͸¦ ¹Ýȯ µË´Ï´Ù. ÅؽºÆ®¿¡ ƯÁ¤ ·¡ÆÛ °³Ã¼°¡ ÀÖÀ¸¸é ÇØ´ç hWnd hWndÆ÷Àå Àӽà CWnd »ý¼º µË´Ï´Ù. ÀÌ Çڵ鿡¼ À¯È¿ÇÑ c + + °³Ã¼¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
·¡ÆÛ °³Ã¼¸¦ ÀÏ´Ü °ø¿ë ¸â¹ö º¯¼ö¸¦ ÅëÇØ ÇØ´ç ÇÚµéÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. CWnd´Â °æ¿ì m_hWnd Æ÷ÇÔ °³Ã¼¿¡ ´ë ÇÑ HWND¡£
ÇÚµé MFC °³Ã¼¿¡ ¿¬°á
Windows °³Ã¼¸¦ »õ·Î ¸¸µçµÈ ÇÚµé ·¡ÆÛ °³Ã¼¿Í ÇÚµéÀ» °¨¾ÈÇÒ ¶§, Attach¸¦ È£Ãâ ÇÏ ¿© µÎ¸¦ ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î:
CWnd myWnd;
myWnd.Attach(hWnd)
ÀÌ°ÍÀº myWnd ¹× hWnd¿¬°á ¿µ±¸ Áöµµ¿¡¼ Ç׸ñ. CWnd::FromHandle(hWnd) È£Ãâ Æ÷ÀÎÅÍ myWnd¿¡ ¹Ýȯ ÀÌÁ¦ °ÍÀÔ´Ï´Ù. MyWnd ¸¦ »èÁ¦ ÇÏ¸é ¼Ò¸êÀÚ°¡ Windows DestroyWindow ÇÔ¼ö¸¦ È£Ãâ ÇÏ ¿© Hwnd¸¦ Æı« ÇÏ´Â ÀÚµ¿À¸·Î µË´Ï´Ù. ÇÊ¿ä ÇÏÁö ¾ÊÀº °æ¿ì¿¡ (ÀϹÝÀûÀ¸·Î ¶§ ¶°³ª ¹üÀ§´Â myWnd ¿¡ Á¤ÀÇ µÈ) myWnd °³Ã¼°¡ ¼Ò¸ê µÇ±â Àü¿¡ hWnd ¸¦ myWnd ¿¡¼ ºÐ¸® ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¸°Ô ºÐ¸® ¸â¹ö ÇÔ¼ö¡£
myWnd.Detach()
Àӽà °³Ã¼¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ
FromHandle ·¡ÆÛ °³Ã¼ ¾ø´Â ÇÚµéÀ» ÁÖ¾î Áý´Ï´Ù ¶§¸¶´Ù Àӽà °³Ã¼°¡ »ý¼º µË´Ï´Ù. ÀÌ·¯ÇÑ Àӽà °³Ã¼ ÀÚ½ÅÀÇ Çڵ鿡¼ ºÐ¸® ÇÏ °í DeleteTempMap ÇÔ¼ö¿¡ ÀÇÇØ »èÁ¦ µË´Ï´Ù. CWinThread ¿¡¼ ±âº» OnIdle 󸮴 ÀÚµ¿À¸·Î Àӽà ÇÚµé Áöµµ Áö ¿øÇÏ´Â °¢ Ŭ·¡½º¿¡ ´ë ÇÑ DeleteTempMap À» È£Ãâ ÇÕ´Ï´Ù. Áï, Àӽà °³Ã¼¿¡ ´ë ÇÑ Æ÷ÀÎÅÍ ÀÖÀ» °ÍÀÔ´Ï´Ù °ú°Å ÇÔ¼ö¿¡¼ Ãⱸ ÁöÁ¡À» À¯È¿ÇÑ Æ÷ÀÎÅ͸¦ °¡Á®¿Â Windows ¸Þ½ÃÁö ·çÇÁ°¡ À¯ÈÞ ½Ã°£ µ¿¾È Àӽà °³Ã¼ »èÁ¦ µË´Ï´Ù °¡Á¤ ¼ö ¾ø½À´Ï´Ù.
·¡ÆÛ °³Ã¼ ¹× ´ÙÁß ½º·¹µå
Àӽà ¹× ¿µ±¸ °³Ã¼ ´ç ½º·¹µå ´ÜÀ§·Î À¯Áö µË´Ï´Ù. Áï, ÇϳªÀÇ ½º·¹µå°¡ ´Ù¸¥ ½º·¹µåÀÇ Àӽà ¶Ç´Â ¿µ±¸ ÀÎÁö¿¡ °ü°è ¾øÀÌ c + + ·¡ÆÛ °³Ã¼¸¦ ¾×¼¼½ºÇÒ ¼ö ¾ø½À´Ï´Ù. Àӽà °³Ã¼´Â Àӽà °³Ã¼°¡ ¼ÓÇÏ´Â ½º·¹µå OnIdle µé¾î°¡¸é »èÁ¦ µË´Ï´Ù À§¿¡¼ ¼³¸í Çß µíÀÌ¡£
ÀÌ·¯ÇÑ °³Ã¼¿¡¼ ÇÑ ½º·¹µå°¡ ´Ù¸¥ Àü´ÞÇÒ Ç×»ó º¸³»±â ±×µé ±×µéÀÇ ³×ÀÌƼºê ó¸® ·Î ÀÔ·Â ÇÕ´Ï´Ù. ¿¹±âÄ¡ ¾ÊÀº °á°ú°¡ ÀÚÁÖ ¹ß»ý ÇÑ ½º·¹µå¿¡¼ c + + ·¡ÆÛ °³Ã¼¸¦ Àü´Þ¡£
±â¼ú ³ëÆ® ¹øÈ£·Î |nbsp; Ä«Å×°í¸®º° ±â¼ú ³ëÆ®(&N)