TN003: WindowsÀÇ ¸ÅÇÎÀ» ó¸® ÇÏ´Â °³Ã¼

ÀÌ ³ëÆ®¿¡¼­´Â 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)

Index