Programming Windows With MFC. Jeff ProsiseÀÇ MFC¿¡ ´ëÇÑ ÀÌÇظ¦ µ½´Â Ã¥. MFCÀÇ ¹ÙÀ̺í±Þ ¼ÀûÀ̶ó ÇÒ¸¸ÇÏ´Ù. ¹°·Ð ¿ø¼°¡ ±×·¸´Ù´Â°Å´Ù. ¹ø¿ªº»Àº ¾û¸Á..
¿ÀÈÄ 5:19 2003-01-27 ºÎÅÍ µ¶ÈÄ°¨-¹°·Ð ³ó´ãÀÌ°í, °³ÀÎ ½ºÅ͵𿡠°ü·ÃµÈ ³»¿ë-À» ½áÁ¦³¤´Ù. °¡ÀÚ.
Chapter 1. MFC¶õ?
#format plaintext
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
- ¸Þ½ÃÁö ¸ÊÀÇ ¼öÇà °úÁ¤