â ÇÁ·Î½ÃÀú Superclassing

Superclassing ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ±âÁ¸ Ŭ·¡½º¿Í ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ Á¦°ø ÇÏ´Â Çâ»ó µÈ ±âº» ±â´ÉÀ¸·Î »õ â Ŭ·¡½º¸¦ ¸¸µé ¼ö ÀÖ°Ô ÇØ ÁÖ´Â ±â¼úÀÔ´Ï´Ù. ¼öÆÛ Ŭ·¡½º¸¦ ±âº» Ŭ·¡½º¶ó°í ÇÏ´Â ±âÁ¸ â Ŭ·¡½º¸¦ ±âÁØÀ¸·Î ÇÕ´Ï´Ù. ÀÚÁÖ, ±âº» Ŭ·¡½º ÆíÁý Á¦¾î¿Í °°Àº ½Ã½ºÅÛ ±Û·Î¹ú â Ŭ·¡½º´Â ÇÏÁö¸¸ ±×°ÍÀº ¸ðµç â Ŭ·¡½º ¼ö.

¼öÆÛ Ŭ·¡½º´Â ½´ÆÛ Ŭ·¡½º ÇÁ·Î½ÃÀú¸¦ È£ÃâÇÑ ÀÚü â ÇÁ·Î½ÃÀú. ½´ÆÛ Ŭ·¡½º ÇÁ·Î½ÃÀú ¸Þ½ÃÁö¸¦ ¹ÞÀ¸¸é ¼¼ °¡Áö Á¶Ä¡¸¦ ÃëÇÒ ¼ö: ¼ö ¿øº» â ÇÁ·Î½ÃÀú¿¡ ¸Þ½ÃÁö¸¦ Àü´Þ, ¸Þ½ÃÁö ¼öÁ¤ ¿ø·¡ â ÇÁ·Î½ÃÀú¿¡ Àü´Þ ¶Ç´Â ¸Þ½ÃÁö ó¸® ¹× ÇÏÁö ¿ø·¡ â ÇÁ·Î½ÃÀú¿¡ Àü´Þ ÇÕ´Ï´Ù. ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â ½´ÆÛ Ŭ·¡½º ÇÁ·Î½ÃÀú, ±×°ÍÀº ±×·¸°Ô ÇÒ ¼ö ÀÖ´Ù Àü¿¡ ÈÄ, ¶Ç´Â µÑ ¸ðµÎ Àü°ú ÈÄ ¸Þ½ÃÁö ¿ø·¡ â ÇÁ·Î½ÃÀú¿¡ Àü´Þ.

ÇÏÀ§ ÇÁ·Î½ÃÀú¿Í´Â ´Þ¸® ½´ÆÛ Ŭ·¡½º ÇÁ·Î½ÃÀú â ¸¸µé±â ¸Þ½ÃÁö (WM_NCCREATE, WM_CREATE, ±×¸®°í µîµî)¸¦ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù ÇÏÁö¸¸ ±×°ÍÀº ¶ÇÇÑ Åë°ú ÇØ¾ß ÇÕ´Ï´Ù ±×µé ¿ø·¡ ±âº» Ŭ·¡½º â ÇÁ·Î½ÃÀú¸¦ ±âº» Ŭ·¡½º â ÇÁ·Î½ÃÀú´Â ÃʱâÈ­ ÀýÂ÷¸¦ ¼öÇàÇÒ ¼ö ÀÖµµ·Ï.

½´ÆÛ â Ŭ·¡½º¸¦ ÀÀ¿ë ÇÁ·Î±×·¥ ±âº» Ŭ·¡½º¿¡ ´ë ÇÑ Á¤º¸¸¦ °Ë»ö ÇÏ·Á¸é GetClassInfo ÇÔ¼ö¸¦ ¸ÕÀú È£Ãâ ÇÕ´Ï´Ù. GetClassInfo ±âº» Ŭ·¡½ºÀÇ WNDCLASS ±¸Á¶Ã¼ÀÇ °ªÀ¸·Î WNDCLASS ±¸Á¶Ã¼¸¦ ä¿ó´Ï´Ù. ´ÙÀ½, ÀÀ¿ë ÇÁ·Î±×·¥ WNDCLASS ±¸Á¶Ã¼ÀÇ hInstance ¸â¹ö¿¡ ÀÚü ÀνºÅϽº ÇÚµéÀ» º¹»ç ÇÏ °í lpszClassName ¸â¹ö ½´ÆÛ Ŭ·¡½ºÀÇ À̸§À» º¹»ç ÇÕ´Ï´Ù. ±âº» Ŭ·¡½º¿¡´Â ¸Þ´º, ÀÀ¿ë ÇÁ·Î±×·¥ °°Àº ¸Þ´º ½Äº°ÀÚ¿Í ÇÔ²² »õ·Î¿î ¸Þ´º¸¦ Á¦°ø ÇÏ °í lpszMenuName ¸â¹ö ¸Þ´º À̸§À» º¹»ç ÇØ¾ß ÇÕ´Ï´Ù. ½´ÆÛ Ŭ·¡½º ÇÁ·Î½ÃÀú´Â WM_COMMAND ¸Þ½ÃÁö¸¦ ó¸® ÇÏ °í ±âº» Ŭ·¡½ºÀÇ Ã¢ ÇÁ·Î½ÃÀú¿¡ Àü´Þ ÇÏÁö ¾Ê½À´Ï´Ù, ¸¸¾à ¸Þ´º´Â ÇØ´ç id¸¦ °¡Áú Çʿ䰡 ¾ø´Ù. GetClassInfo lpszMenuName, lpszClassName¶Ç´Â hInstance WNDCLASS ±¸Á¶Ã¼ÀÇ ¸â¹ö¸¦ ¹Ýȯ ÇÏÁö ¾Ê½À´Ï´Ù.

ÀÀ¿ë ÇÁ·Î±×·¥ ¶ÇÇÑ WNDCLASS ±¸Á¶Ã¼ÀÇ lpfnWndProc ¸â¹ö¸¦ ¼³Á¤ ÇØ¾ß ÇÕ´Ï´Ù. GetClassInfo ÇÔ¼ö´ÂÀÌ ¸â¹ö¸¦ Ŭ·¡½º¿¡ ´ë ÇÑ ¿ø·¡ â ÇÁ·Î½ÃÀúÀÇ ÁÖ¼Ò¿Í ÇÔ²² ä¿ó´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº ¸Þ½ÃÁö ¿ø·¡ â ÇÁ·Î½ÃÀú¿¡ Àü´Þ ÇÏ·Á¸éÀÌ ÁÖ¼Ò¸¦ ÀúÀå ÇÏ °í lpfnWndProc ¸â¹ö¿¡ ½´ÆÛ Ŭ·¡½º ÇÁ·Î½ÃÀúÀÇ ÁÖ¼Ò¸¦ º¹»ç ÇØ¾ß ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥, ÇÊ¿äÇÑ °æ¿ì ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù WNDCLASS ±¸Á¶Ã¼ÀÇ ´Ù¸¥ ¸â¹ö. WNDCLASS ±¸Á¶¸¦ ä¿ì°í, ÈÄ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸Á¶ÀÇ ÁÖ¼Ò RegisterClass ÇÔ¼ö¿¡ Àü´Þ ÇÏ ¿© ¼öÆÛ Ŭ·¡½º¸¦ µî·Ï ÇÕ´Ï´Ù. ¼öÆÛ Ŭ·¡½º â ¸¸µé±â¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Superclassing »õ â Ŭ·¡½º¸¦ µî·Ï Çϱ⠶§¹®¿¡ ÀÀ¿ë ÇÁ·Î±×·¥ Ãß°¡ Ŭ·¡½º ¹ÙÀÌÆ®¸¦ Ãß°¡ â ¹ÙÀÌÆ® Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾È ½´ÆÛ Ŭ·¡½º ¿ø·¡ Ãß°¡ ¹ÙÀÌÆ®´Â ÀνºÅϽº ÇÏÀ§ ¶Ç´Â ±Û·Î¹ú ¼­ºê Ŭ·¡½º »ç¿ë ÇÏÁö ¸»¾Æ¾ß ±×µéÀÌ °°Àº ÀÌÀ¯·Î ±âº» Ŭ·¡½º ¶Ç´Â â¿¡ ´ë ÇÑ »ç¿ë ÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ, ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ »ç¿ë¿¡ ´ë ÇÑ Ãß°¡ ¹ÙÀÌÆ® Ŭ·¡½º ¶Ç´Â â ÀνºÅϽº¸¦ Ãß°¡ ÇÏ´Â °æ¿ì ¿ø·¡ ±âº» Ŭ·¡½º¿¡ ÀÇÇØ »ç¿ë µÇ´Â Ãß°¡ ¹ÙÀÌÆ®ÀÇ ¼ö¸¦ ±âÁØÀ¸·Î Ãß°¡ ¹ÙÀÌÆ®¸¦ ÂüÁ¶ ÇØ¾ß ÇÕ´Ï´Ù ±×°Í. ±âº» Ŭ·¡½º¿¡ ÀÇÇØ »ç¿ë µÈ ¹ÙÀÌÆ® ¼ö ´ÙÀ½¿¡ ´ë ÇÑ ±âº» Ŭ·¡½º, ½´ÆÛ Ŭ·¡½ºÀÇ ÀÚü¿¡ ´ë ÇÑ ½ÃÀÛ ¿ÀÇÁ¼ÂÀÇ ÇÑ ¹öÀü¿¡¼­ ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù ¶§¹®¿¡ ¿©ºÐÀÇ ¹ÙÀÌÆ® ¶ÇÇÑ ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù ±âº» Ŭ·¡½ºÀÇ ÇÑ ¹öÀü¿¡¼­ ´ÙÀ½.

 

Index