ÀÀ¿ë ÇÁ·Î±×·¥Àº ¹Ì¸® Á¤ÀÇ µÈ ´ëÈ »óÀÚ Å¬·¡½º¸¦ »ç¿ë ÇÏ´Â ´ë½Å ´ëÈ »óÀÚ¿¡ ´ë ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ Á¤ÀÇ Ã¢ Ŭ·¡½º¸¦ »ç¿ë ÇÏ ¿© »ç¿ëÀÚ ÁöÁ¤ ´ëÈ »óÀÚ¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ÀÀ¿ë ÇÁ·Î±×·¥Àº ´ëÈ »óÀÚ´Â ±×µéÀÇ ÁÖ¿ä â ±×·¯³ª ±×°ÍÀº ¶ÇÇÑ Ç¥ÁØ °ãÄ¡´Â â ÀÖ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¸ð´Þ ¹× ¸ð´ú¸®½º ´ëÈ »óÀÚ¸¦ ¸¸µå´Â µ¥ À¯¿ë ÇÏ´Â °æ¿ìÀÌ ¸Þ¼µå¸¦ »ç¿ë.
ÀÀ¿ë ÇÁ·Î±×·¥ Á¤ÀÇ Ã¢ Ŭ·¡½º¿¡´Â ´ëÈ »óÀÚ ÇÁ·Î½ÃÀú¿¡ ±×µéÀ» º¸³»±â Àü¿¡ ´ëÈ »óÀÚ¿Í ÇÁ·Î¼¼½º ¸Þ½ÃÁö¿¡ ´ë ÇÑ Ã¢ ÇÁ·Î½ÃÀú¸¦ Á¤ÀÇ ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ Å¬·¡½º ¾ÆÀÌÄÜ, Ŭ·¡½º ¹è°æ ºê·¯½Ã ´ëÈ »óÀÚ¿¡ ´ë ÇÑ Å¬·¡½º ¸Þ´º¸¦ Á¤ÀÇ ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ´ëÈ »óÀÚ¸¦ ¸¸µé±â Àü¿¡ â Ŭ·¡½º¸¦ µî·Ï ÇØ¾ß ÇÏ °í ¿øÀÚ °ª ¶Ç´Â â Ŭ·¡½ºÀÇ À̸§À¸·Î ´ëÈ »óÀÚ ¼½Ä ÆÄÀÏÀ» Á¦°ø ÇØ¾ß ÇÕ´Ï´Ù.
¸¹Àº ÀÀ¿ë ÇÁ·Î±×·¥ ¹Ì¸® Á¤ÀÇ µÈ ´ëÈ »óÀÚ Å¬·¡½º¿¡ ´ë ÇÑ Å¬·¡½º Á¤º¸¸¦ °Ë»ö ÇÑ ´ÙÀ½ Á¤º¸´Â WNDCLASS ±¸Á¶Ã¼¸¦ ä¿ó´Ï´Ù GetClassInfo ÇÔ¼ö¿¡ Àü´Þ ÇÏ ¿© »õ ´ëÈ »óÀÚ Å¬·¡½º¸¦ ¸¸µì´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ±¸Á¶¿Í °°Àº Ŭ·¡½º À̸§, ºê·¯½Ã, ¾ÆÀÌÄÜ, °³º° ±¸¼º¿øÀ» ¼öÁ¤ ´ÙÀ½ RegisterClass ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© »õ Ŭ·¡½º¸¦ µî·Ï ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ÀÚü¿¡ WNDCLASS ±¸Á¶Ã¼¸¦ ä¿ì°í, °¢ ´ëÈ »óÀÚ¿¡ ´ë ÇÑ ÇÊ¿äÇÑ ¿©ºÐÀÇ ¹ÙÀÌÆ® ¼ö´Â DLGWINDOWEXTRA¿¡ cbWndExtra ¸â¹ö¸¦ ¼³Á¤ ÇØ¾ß ÇÕ´Ï´Ù ±×°Í. ¶ÇÇÑÀÌ ÀÀ¿ë ÇÁ·Î±×·¥ Ãß°¡ ¹ÙÀÌÆ®¸¦ »ç¿ë ÇÏ ¿© °¢ ´ëÈ »óÀÚ¿¡ ´ë ÇÑ, ±×µéÀº ½Ã½ºÅÛ¿¡ ÇÊ¿äÇÑ Ãß°¡ ¹ÙÀÌÆ®¸¦ ³Ñ¾î µÇ¾î¾ß ÇÕ´Ï´Ù.
»ç¿ëÀÚ ÁöÁ¤ ´ëÈ »óÀÚ¿¡ ´ë ÇÑ Ã¢ ÇÁ·Î½ÃÀú´Â µ¿ÀÏÇÑ ¸Å°³ º¯¼ö ¹× ¿ä±¸ »çÇ×À» ´Ù¸¥ â ÇÁ·Î½ÃÀú. ±×·¯³ª ´Ù¸¥ â ÇÁ·Î½ÃÀú¿Í ´Þ¸®,ÀÌ ´ëÈ »óÀÚ¿¡ ´ë ÇÑ Ã¢ ÇÁ·Î½ÃÀú È£Ãâ ÇØ¾ß DefWindowProc ÇÔ¼ö ´ë½Å DefDlgProc ÇÔ¼ö¿¡ ´ë ÇÑ ¸ðµç ¸Þ½ÃÁö¸¦ ó¸® ÇÏÁö ¾Ê½À´Ï´Ù. DefDlgProc ´ëÈ »óÀÚ ÇÁ·Î½ÃÀú È£ÃâÀ» Æ÷ÇÔ ÇÏ´Â ¹Ì¸® Á¤ÀÇ µÈ ´ëÈ »óÀÚ¿¡ ´ë ÇÑ Ã¢ ÇÁ·Î½ÃÀú¸¦ ó¸® ÇÏ´Â µ¿ÀÏÇÑ ±âº» ¸Þ½ÃÁö ½Ç½Ã.
ÀÀ¿ë ÇÁ·Î±×·¥Àº ¹Ì¸® Á¤ÀÇ µÈ ´ëÈ »óÀÚ Ã¢ ÇÁ·Î½ÃÀú¸¦ ¼ºêŬ·¡½ÌÇÏ ¿© »ç¿ëÀÚ ÁöÁ¤ ´ëÈ »óÀÚ¸¦ ¸¸µé ¼öµµ ÀÖ½À´Ï´Ù. SetWindowLong ÇÔ¼ö´Â ÁöÁ¤ÇÑ Ã¢¿¡ ´ë ÇÑ Ã¢ ÇÁ·Î½ÃÀúÀÇ ÁÖ¼Ò¸¦ ¼³Á¤ ÇÏ´Â ÀÀ¿ëÀ» ÇÁ·Î±×·¥ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ SetClassLong ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ÇÏÀ§ Ŭ·¡½º¸¦ ¶ÇÇÑ ½ÃµµÇÒ ¼ö ÀÖ½À´Ï´Ù ÇÏÁö¸¸ ¹¹ ±×·¸°Ô ¸ðµç ´ëÈ »óÀÚ¿¡¿¡¼ ¿µÇâÀ» ¹ÌĨ´Ï´Ù ½Ã½ºÅÛ »Ó ¾Æ´Ï¶ó ±× ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¼ÓÇÏ´Â.
°¡²û »ç¿ëÀÚ ÁöÁ¤ ´ëÈ »óÀÚ¸¦ »ý¼º ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ´ëÈ »óÀÚ¿¡ ´ë ÇÑ ´ëü Űº¸µå ÀÎÅÍÆäÀ̽º¸¦ Á¦°ø ÇÕ´Ï´Ù. ¸ð´ú¸®½º ´ëÈ »óÀÚ¿¡ ´ë ÇÑÀÌ ÀÇ¹Ì ¾ÖÇø®ÄÉÀ̼ǰú IsDialogMessage ÇÔ¼ö¸¦ È£Ãâ ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ´ë½Å »ç¿ëÀÚ ÁöÁ¤ â ÇÁ·Î½ÃÀú¿¡¼ ¸ðµç Űº¸µå ÀÔ·ÂÀ» ó¸® ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡ ÀÀ¿ë ÇÁ·Î±×·¥À» ÃÖ¼ÒÈ ÇÑ ÄÁÆ®·Ñ¿¡¼ ÀÔ·ÂµÈ Æ÷Ä¿½º¸¦ À̵¿ ÇÏ´Â µ¥ ÇÊ¿äÇÑ ÄÚµå WM_NEXTDLGCTL ¸Þ½ÃÁö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Þ½ÃÁö¸¦ DefDlgProcÀü´Þ ÇÏ´Â °æ¿ì ÁöÁ¤µÈ µÈ ÄÁÆ®·Ñ¿¡ ÀÔ·ÂµÈ Æ÷Ä¿½º¸¦ À̵¿ ÇÏ °í ±âº» ´©¸§ ´ÜÃß Å׵θ® À̵¿ Çϰųª ¼³Á¤ ÀÚµ¿ ¶óµð¿À ´ÜÃß¿Í °°Àº ÄÁÆ®·ÑÀÇ ¸ð¾çÀ» ¾÷µ¥ÀÌÆ®ÇÕ´Ï´Ù.