Diff for "ProgrammingWindowsWithMFC" | UserPreferences |
Programming Windows With MFC. Jeff ProsiseÀÇ MFC¿¡ ´ëÇÑ ÀÌÇظ¦ µ½´Â Ã¥. MFCÀÇ ¹ÙÀ̺í±Þ ¼ÀûÀ̶ó ÇÒ¸¸ÇÏ´Ù. ¹°·Ð ¿ø¼°¡ ±×·¸´Ù´Â°Å´Ù. ¹ø¿ªº»Àº ¾û¸Á..
¿ÀÈÄ 5:19 2003-01-27 ºÎÅÍ µ¶ÈÄ°¨-¹°·Ð ³ó´ãÀÌ°í, °³ÀÎ ½ºÅ͵𿡠°ü·ÃµÈ ³»¿ë-À» ½áÁ¦³¤´Ù. °¡ÀÚ.
----
[[TableOfContents]]
==== Chapter 1. MFC¶õ? ====
Microsoft Foundation Class - C++ ÇÁ·Î±×·¡¸ÓµéÀ» À§ÇÑ Å¬·¡½º ¶óÀ̺귯¸®. À©µµ ÀÀ¿ë ÇÁ·Î±×·¥À» ¸¸µå´Âµ¥ ÀÖ¾î¼ ÇÊ¿äÇÑ ¸ðµç °ÍÀ» ó¸®ÇÏ´Â ±¤¹üÀ§ÇÑ Å¬·¡½º ÁýÇÕÀ» Á¦°øÇÑ´Ù.
Windows Programming Model
* Event Driven - ¾îÇø®ÄÉÀ̼ÇÀº OS¿¡ ÀÇÇØ Àü´ÞµÈ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â 'À̺¥Æ®'¶õ °³³ä¿¡ ÀÇÇØ µ¿ÀÛ(ȤÀº ÀÀ´ä)ÇÑ´Ù.
* Windows Message - À©µµ¿¡ ÀÇÇØ Á¤ÀÇµÈ ¸Þ½ÃÁö Çü½Ä. WM_À̶õ Á¢µÎ¾î·Î ½ÃÀÛÇϸç, ¿¹¸¦ µé¸é WM_CHAR, WM_COMMAND.. µîµî. ¸¹´Ù. º¸Åë ¸Þ½ÃÁö¸¦ ¹Þ´Â Window Handle, Message ID, µÎ°³ÀÇ 32ºñÆ® Parameter°¡ Àü´ÞµÈ´Ù.
* SDK ½ºÅ¸ÀÏ ÇÁ·Î±×·¡¹Ö - À©µµ Ŭ·¡½º µî·Ï -> À©µµ »ý¼º -> ¸Þ½ÃÁö ·çÇÁ (-> À©µµ Æı«)ÀÇ °úÁ¤À» °ÅÄ£´Ù.
* Hungarian Ç¥±â¹ý - h(handle), p(pointer), sz(string terminated by zero) µîÀÇ Á¢µÎ¾î. MFC¿¡¼µµ ±âº»ÀûÀ¸·Î Çë°¡¸®¾È Ç¥±â¹ý »ç¿ë
MFC ¼Ò°³
* C++ Ŭ·¡½º ¶óÀ̺귯¸®.
* Windows APIÀÇ Wrapper Ŭ·¡½ºÀÇ ¸ðÀ½.
* ¾îÇø®ÄÉÀ̼ÇÀÇ Framework ; ÇÁ·Î±×·¡¹ÖÀÇ Ãß»óÈ ´Ü°è Á¦°ø.
* ÀÌ¹Ì ¸¸µé¾îÁ® Àִ Ŭ·¡½ºÀÇ Á¦°ø. ÄÚµåÀÇ Àç»ç¿ë¼º.
* MFCÀÇ µðÀÚÀΠöÇÐ
* °³Ã¼ÁöÇâÀû ÀÎÅÍÆäÀ̽ºÀÇ Áö¿ø ; Àç»ç¿ë¼º, ÀÚ±â ÇÔÃ༺, oop's etc.
; °³Ã¼ÀÇ Ä¸½¶È, °¡»ó ÇÔ¼öÀÇ »ç¿ë
* ¿À¹öÇìµåÀÇ Á¦°Å
; HWND°¡ CWnd Ŭ·¡½º¿¡ ´ëÀÀÇϵµ·Ï(±×·¯³ª ³ëÃâµÇÁö´Â ¾Êµµ·Ï) °ü°è¸¦ ¸íÈ®È÷ ÇÔ.
* Doc/View ±¸Á¶
* MFC class hierarchy ; diagram ÂüÁ¶.
* ¸ðµç class´Â CObject·ÎºÎÅÍ ÆÄ»ý ; Serialization, RTCI(Run Time Class Information, Runtime Type Information°ú´Â ´Ù¸¥ ¹æ¹ýÀ¸·Î ±¸ÇöµÊ), Áø´Ü/Debugging
* Afx ÇÔ¼ö
* MFC°¡ Á¦°øÇÏ´Â, Àü¿ª ÇÔ¼ö ÇüÅÂÀÇ API.
ù¹ø° MFC ¾îÇø®ÄÉÀ̼Ç
* CPaintDC ; Device Context. Ŭ¶óÀ̾ðÆ® ¿µ¿ªÀÇ µð½ºÇ÷¹ÀÌ¿¡ ´ëÇÑ °´Ã¼
* WM_PAINT¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î âÀÌ ±×·ÁÁü
* ¿ë¿ë ÇÁ·Î±×·¥ °³Ã¼
* InitInstance() ; OverridingÇؼ À©µµ¸¦ »ý¼ºÇÏ´Â ·çƾÀ» ³Ö¾î¾ß ÇÑ´Ù.
* ±× ÀÌ¿Ü¿¡µµ Overriding °¡´ÉÇÑ ¿©·¯ °³Ã¼°¡ ÀÖÀ½.
* MFC¿¡¼ ÀÀ¿ë ÇÁ·Î±×·¥ °³Ã¼¸¦ »ç¿ëÇÏ´Â ¹æ¹ý
* WinMain() ´ë½Å winmain.cpp¿¡ AfxWinMain() ÇÔ¼ö°¡ Æ÷ÇԵǾî ÀÖÀ½
* ÇÁ·¹ÀÓ Ã¢ °³Ã¼
* CFrameWnd ; ÇÁ·¹ÀÓ Ã¢ÀÇ µ¿ÀÛ¿¡ ´ëÇÑ ±âº» °ñ°ÝÀ» Á¤ÀÇÇÔ. (±âº» ÀÎÅÍÆäÀ̽ºÀÇ ÃÖ»óÀ§ â!)
* CFrameWnd::Create() ÇÔ¼ö·Î â »ý¼º. ½ºÅ¸Àϵµ ÁöÁ¤ °¡´ÉÇϸç, PreCreateWindow()¿¡ Àü´ÞµÇ´Â CREATESTRUCT ±¸Á¶Ã¼ÀÇ style Çʵ带 ¼öÁ¤ÇÔÀ¸·Î¼µµ °¡´ÉÇÏ´Ù.
* OnPaint() ÇÔ¼ö¿¡¼ WM_PAINT ¸Þ½ÃÁö°¡ 󸮵ǰí, ¾îÇø®ÄÉÀ̼ÇÀÇ Å¬¶óÀ̾ðÆ® ¿µ¿ªÀÌ ±×·ÁÁø´Ù.
* Message Map
* ¸Þ½ÃÁö¿Í ¸â¹ö ÇÔ¼ö¸¦ ¿¬°á½ÃÅ°´Â Å×À̺í
* DECLARE_MESSAGE_MAP(), BEGIN_MESSAGE_MAP (CMainWnd, CFrameWnd), ON_WM_XXXX(), END_MESSAGE_MAP
* ¸Þ½ÃÁö ¸ÊÀÇ ¼öÇà °úÁ¤
----
[ÇÁ·Î±×·¡¹ÖºÐ·ù]
Programming Windows With MFC. Jeff ProsiseÀÇ MFC¿¡ ´ëÇÑ ÀÌÇظ¦ µ½´Â Ã¥. MFCÀÇ ¹ÙÀ̺í±Þ ¼ÀûÀ̶ó ÇÒ¸¸ÇÏ´Ù. ¹°·Ð ¿ø¼°¡ ±×·¸´Ù´Â°Å´Ù. ¹ø¿ªº»Àº ¾û¸Á..
¿ÀÈÄ 5:19 2003-01-27 ºÎÅÍ µ¶ÈÄ°¨-¹°·Ð ³ó´ãÀÌ°í, °³ÀÎ ½ºÅ͵𿡠°ü·ÃµÈ ³»¿ë-À» ½áÁ¦³¤´Ù. °¡ÀÚ.
----
[[TableOfContents]]
==== Chapter 1. MFC¶õ? ====
Microsoft Foundation Class - C++ ÇÁ·Î±×·¡¸ÓµéÀ» À§ÇÑ Å¬·¡½º ¶óÀ̺귯¸®. À©µµ ÀÀ¿ë ÇÁ·Î±×·¥À» ¸¸µå´Âµ¥ ÀÖ¾î¼ ÇÊ¿äÇÑ ¸ðµç °ÍÀ» ó¸®ÇÏ´Â ±¤¹üÀ§ÇÑ Å¬·¡½º ÁýÇÕÀ» Á¦°øÇÑ´Ù.
Windows Programming Model
* Event Driven - ¾îÇø®ÄÉÀ̼ÇÀº OS¿¡ ÀÇÇØ Àü´ÞµÈ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â 'À̺¥Æ®'¶õ °³³ä¿¡ ÀÇÇØ µ¿ÀÛ(ȤÀº ÀÀ´ä)ÇÑ´Ù.
* Windows Message - À©µµ¿¡ ÀÇÇØ Á¤ÀÇµÈ ¸Þ½ÃÁö Çü½Ä. WM_À̶õ Á¢µÎ¾î·Î ½ÃÀÛÇϸç, ¿¹¸¦ µé¸é WM_CHAR, WM_COMMAND.. µîµî. ¸¹´Ù. º¸Åë ¸Þ½ÃÁö¸¦ ¹Þ´Â Window Handle, Message ID, µÎ°³ÀÇ 32ºñÆ® Parameter°¡ Àü´ÞµÈ´Ù.
* SDK ½ºÅ¸ÀÏ ÇÁ·Î±×·¡¹Ö - À©µµ Ŭ·¡½º µî·Ï -> À©µµ »ý¼º -> ¸Þ½ÃÁö ·çÇÁ (-> À©µµ Æı«)ÀÇ °úÁ¤À» °ÅÄ£´Ù.
* Hungarian Ç¥±â¹ý - h(handle), p(pointer), sz(string terminated by zero) µîÀÇ Á¢µÎ¾î. MFC¿¡¼µµ ±âº»ÀûÀ¸·Î Çë°¡¸®¾È Ç¥±â¹ý »ç¿ë
MFC ¼Ò°³
* C++ Ŭ·¡½º ¶óÀ̺귯¸®.
* Windows APIÀÇ Wrapper Ŭ·¡½ºÀÇ ¸ðÀ½.
* ¾îÇø®ÄÉÀ̼ÇÀÇ Framework ; ÇÁ·Î±×·¡¹ÖÀÇ Ãß»óÈ ´Ü°è Á¦°ø.
* ÀÌ¹Ì ¸¸µé¾îÁ® Àִ Ŭ·¡½ºÀÇ Á¦°ø. ÄÚµåÀÇ Àç»ç¿ë¼º.
* MFCÀÇ µðÀÚÀΠöÇÐ
* °³Ã¼ÁöÇâÀû ÀÎÅÍÆäÀ̽ºÀÇ Áö¿ø ; Àç»ç¿ë¼º, ÀÚ±â ÇÔÃ༺, oop's etc.
; °³Ã¼ÀÇ Ä¸½¶È, °¡»ó ÇÔ¼öÀÇ »ç¿ë
* ¿À¹öÇìµåÀÇ Á¦°Å
; HWND°¡ CWnd Ŭ·¡½º¿¡ ´ëÀÀÇϵµ·Ï(±×·¯³ª ³ëÃâµÇÁö´Â ¾Êµµ·Ï) °ü°è¸¦ ¸íÈ®È÷ ÇÔ.
* Doc/View ±¸Á¶
* MFC class hierarchy ; diagram ÂüÁ¶.
* ¸ðµç class´Â CObject·ÎºÎÅÍ ÆÄ»ý ; Serialization, RTCI(Run Time Class Information, Runtime Type Information°ú´Â ´Ù¸¥ ¹æ¹ýÀ¸·Î ±¸ÇöµÊ), Áø´Ü/Debugging
* Afx ÇÔ¼ö
* MFC°¡ Á¦°øÇÏ´Â, Àü¿ª ÇÔ¼ö ÇüÅÂÀÇ API.
ù¹ø° MFC ¾îÇø®ÄÉÀ̼Ç
* CPaintDC ; Device Context. Ŭ¶óÀ̾ðÆ® ¿µ¿ªÀÇ µð½ºÇ÷¹ÀÌ¿¡ ´ëÇÑ °´Ã¼
* WM_PAINT¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î âÀÌ ±×·ÁÁü
* ¿ë¿ë ÇÁ·Î±×·¥ °³Ã¼
* {{|InitInstance()|}} ; OverridingÇؼ À©µµ¸¦ »ý¼ºÇÏ´Â ·çƾÀ» ³Ö¾î¾ß ÇÑ´Ù.
* ±× ÀÌ¿Ü¿¡µµ Overriding °¡´ÉÇÑ ¿©·¯ °³Ã¼°¡ ÀÖÀ½.
* MFC¿¡¼ ÀÀ¿ë ÇÁ·Î±×·¥ °³Ã¼¸¦ »ç¿ëÇÏ´Â ¹æ¹ý
* {{|WinMain()|}} ´ë½Å winmain.cpp¿¡ {{|AfxWinMain()|}} ÇÔ¼ö°¡ Æ÷ÇԵǾî ÀÖÀ½
* ÇÁ·¹ÀÓ Ã¢ °³Ã¼
* {{|CFrameWnd|}} ; ÇÁ·¹ÀÓ Ã¢ÀÇ µ¿ÀÛ¿¡ ´ëÇÑ ±âº» °ñ°ÝÀ» Á¤ÀÇÇÔ. (±âº» ÀÎÅÍÆäÀ̽ºÀÇ ÃÖ»óÀ§ â!)
* {{|CFrameWnd::Create()|}} ÇÔ¼ö·Î â »ý¼º. ½ºÅ¸Àϵµ ÁöÁ¤ °¡´ÉÇϸç, {{|PreCreateWindow()|}}¿¡ Àü´ÞµÇ´Â CREATESTRUCT ±¸Á¶Ã¼ÀÇ style Çʵ带 ¼öÁ¤ÇÔÀ¸·Î¼µµ °¡´ÉÇÏ´Ù.
* {{|OnPaint()|}} ÇÔ¼ö¿¡¼ WM_PAINT ¸Þ½ÃÁö°¡ 󸮵ǰí, ¾îÇø®ÄÉÀ̼ÇÀÇ Å¬¶óÀ̾ðÆ® ¿µ¿ªÀÌ ±×·ÁÁø´Ù.
* Message Map
* ¸Þ½ÃÁö¿Í ¸â¹ö ÇÔ¼ö¸¦ ¿¬°á½ÃÅ°´Â Å×À̺í
* DECLARE_MESSAGE_MAP(), BEGIN_MESSAGE_MAP ({{|CMainWnd|}}, {{|CFrameWnd|}}), ON_WM_XXXX(), END_MESSAGE_MAP
* ¸Þ½ÃÁö ¸ÊÀÇ ¼öÇà °úÁ¤
----
[ÇÁ·Î±×·¡¹ÖºÐ·ù]