À©µµ¿ì ¿¡¹Ä·¹ÀÌÅÍ¿¡¼´Â ÇѱÛÀÌ µ¿ÀÛÇÏÁö ¾Ê½À´Ï´Ù. ÇÑ±Û Ãâ·ÂÀº ¸ðµÎ PDA¿¡¼¸¸ ½ÇÇàÇØ¾ß ÇÕ´Ï´Ù. ¿¡¹Ä·¹ÀÌÅÍ¿¡¼´Â ¿µ¹® Ãâ·Â¸¸ Çϵµ·Ï Çϼ¼¿ä. ±×¸®°í À̹ø °ÀÇ´Â ¼³¸íÀÌ ¸¹Àºµ¥ ¼³¸íÀÌ ¾î·Á¿ì½Å ºÐÀº ¹Ù·Î ¾Æ·¡ÀÇ ÇÑ±Û Ãâ·Â ½Ç½ÀÀ¸·Î °Ç³Ê ¶Ù¼Åµµ µË´Ï´Ù.(±× ³»¿ëÀº ¾ó¸¶ ¾ÈµÇÁö¸¸... ^^)
1. ¸Þ´º ¢¹ File ¢¹ New¸¦ ¼±ÅÃÇؼ WCE Pocket PC 2002 ApplicationÀ» ¼±ÅÃÇÏ°í ÇÁ·ÎÁ§Æ® ¸í(Project Name)À» Exam02 ·Î ŸÀÌÇÎ ÇÑ ÈÄ OK ¹öÆ°À» ´©¸¨´Ï´Ù.
2. ´ÙÀ½ ȸ鿡¼ A typical Hello World Application Ç׸ñÀ» ¼±ÅÃÇÏ°í Finish ¹öÆ°À» ´©¸¨´Ï´Ù. ´ÙÀ½ ȸ鿡¼ OK ¹öÆ°À» ´©¸£¸é Exam02 ¶ó´Â »õ·Î¿î ÇÁ·ÎÁ§Æ®°¡ ¸¸µé¾îÁú °ÍÀÔ´Ï´Ù.
3. ÇÁ·Î±×·¥À» ½ÇÇà(F5) ½ÃÄÑ µ¿ÀÛÇÏ´Â °ÍÀ» È®ÀÎÇÕ´Ï´Ù.
¼Ò½º ÄÚµå º¸±â
1. È¸é ¿ÞÂÊ À§¿¡ Exam02 classes¸¦ ´õºí Ŭ¸¯ ÇÕ´Ï´Ù. Æ®¸®ÀÇ ÇÏÀ§ ¸Þ´º·Î Globals°¡ ³ªÅ¸³³´Ï´Ù.
2. Globals¸¦ ´õºí Ŭ¸¯ ÇÕ´Ï´Ù. ¹º°¡ Àâ´ÙÇÑ °ÍÀÌ ¿ì·ç·ç ³ªÅ¸³³´Ï´Ù.
3. ¹×¿¡¼ 3¹ø°ÀÎ WndProc¸¦ ´õºí Ŭ¸¯ÇÕ´Ï´Ù. ¿À¸¥ÂÊ Ä¿´Ù¶õ ºó ȸ鿡 ¼Ò½º°¡ ³ªÅ¸³³´Ï´Ù. ±×¸®°í ±ôºýÀ̴ ij·µÀÌ WndProc ÇÔ¼ö¸¦ °¡¸®Å°°í ÀÖ½À´Ï´Ù. ³»°¡ WndProc ÇÔ¼ö·Î À̵¿ÇÏÀÚ°í Çϸé ÀÌ¿Í °°ÀÌ ¿ÞÁ· WndProc¸¦ ´õºíŬ¸¯ ÇÏ½Ã¸é µË´Ï´Ù. ¿ì¸®°¡ ¾ÕÀ¸·Î °ü½É ÀÖ´Â °ÍÀº ¿ì¼± ÀÌ WndProcÀÔ´Ï´Ù. ´Ù¸¥ °ÍÀº ¹ºÁö ¸ð¸£¼Åµµ µË´Ï´Ù. ³»¿ëÀÌ Á¶±Ý ¾îÁö·´Áö¿ä?
// Wnd ProcÀÇ ÇÔ¼ö ¼±¾ðÀÔ´Ï´Ù. ¸ðµç ³»¿ëÀº {(Áß°ýÈ£) ·Î ½ÃÀÛÇؼ,
// return 0; Çà ´ÙÀ½ ÁÙÀÇ }(Áß°ýÈ£) ´Ý´Â °÷±îÁö ÀÔ´Ï´Ù.
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
......
return 0;
}
4. ¿©±â¼ Á» ´õ °ü½É ¹üÀ§¸¦ Á¼Èü´Ï´Ù. WndProc ÇÔ¼ö ¾È¿¡¼ case WM_PAINT :¸¦ ã½À´Ï´Ù. Á÷Á¢ ã¾Æµµ µÇ°í WM_PAINT¸¦ ã±â(Ctrl+F3) Çصµ µË´Ï´Ù. ãÀ¸¼Ì½À´Ï±î? ¾Æ·¡¿Í °°Àº ³»¿ëÀÌ ÀÖ½À´Ï´Ù.
case WM_PAINT:
RECT rt;
hdc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rt);
LoadString(g_hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
DrawText(hdc, szHello, _tcslen(szHello), &rt,
DT_SINGLELINE | DT_VCENTER | DT_CENTER);
EndPaint(hWnd, &ps);
break;
À§ ÄÚµå´Â ´ÙÀ½°ú °°Àº Àǹ̸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌÇØ°¡ ¾ÈµÇ½Ã¸é ±×³É ³Ñ¾î°¡µµ µË´Ï´Ù¸¸ ÀÏ´ÜÀº ÁÖÀÇ ±í°Ô ÀÐ¾î º¸¼¼¿ä.
À©µµ¿ì¿¡ WM_PAINT ¸Þ½ÃÁö°¡ ¹ß»ýÇϸé ÀÌ °÷À¸·Î ¿É´Ï´Ù. WM_PAINT ¸Þ½ÃÁö´Â ȸé À¯ÁöÀÇ ÀÓ¹«¸¦ ¸Ã°í ÀÖ½À´Ï´Ù. ȸ鿡 Ãâ·ÂÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù°í ÆǴܵǸé(´Ù¸¥ À©µµ¿ì °¬´Ù°¡ µ¹¾Æ¿À°Å³ª ´Ù¸¥ À©µµ¿ì¿¡ µ¤¿´´Ù°¡ ´Ù½Ã ¾ÕÀ¸·Î ³ª¿ÔÀ» ¶§ µî) OS ´Â ¿ì¸® À©µµ¿ì¿¡ WM_PAINT ¸Þ½ÃÁö¸¦ Àü´ÞÇÕ´Ï´Ù.
case WM_PAINT:
RECTÇü º¯¼ö(»ç°¢ÇüÀÇ ÁÂÇ¥¸¦ ±â¾ïÇÏ´Â º¯¼öÇü) rtÀÇ ¼±¾ðÀÔ´Ï´Ù.
RECT rt;
À©µµ¿ì·ÎºÎÅÍ DC¸¦ ¾ò½À´Ï´Ù. º¯¼ö hdc °¡ DC¸¦ °¡Áö°Ô µË´Ï´Ù.(Á¤È®ÇÏ°Ô´Â °¡¸®Å°°Ô µÇ´Â°ÅÁö¸¸...) ¿ì¼± ±×·¯·Á´Ï Çϼ¼¿ä. ¿ì¸®°¡ ¹º°¡¸¦ Ãâ·ÂÇÏ·Á¸é Ç×»ó À©µµ¿ì·ÎºÎÅÍ DC¸¦ ¾ò¾î¾ß ÇÕ´Ï´Ù.
hdc = BeginPaint(hWnd, &ps);
À©µµ¿ì(Ãâ·Â ¿µ¿ª)ÀÇ Å©±â(ÁÂÇ¥)¸¦ ¾ò¾î º¯¼ö rt ¿¡ ³Ö½À´Ï´Ù. ÀÌ °ªÀº ³ªÁß¿¡ Ãâ·ÂÇØ º¼ °ÍÀÔ´Ï´Ù.
GetClientRect(hWnd, &rt);
IDS_HELLO ¿¡ ÇØ´çÇÏ´Â ¹®ÀÚ¿À» °¡Á®¿Í¼ ¹®ÀÚ¿ º¯¼ö szHello ¿¡ ³Ö½À´Ï´Ù. ÀÌ ³»¿ëÀº Hello World!ÀÔ´Ï´Ù. IDS_HELLO ´Â ¸®¼Ò½º¿¡ µé¾î ÀÖ½À´Ï´Ù. ³ªÁß¿¡ È®ÀÎÇÕ´Ï´Ù.
LoadString(g_hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
DC¸¦ ÀÌ¿ëÇؼ szHello º¯¼ö¿¡ ÀÖ´Â ³»¿ëÀ» ÁÂÇ¥ rt¸¦ ±âÁØÀ¸·Î Çؼ ÇÑÁÙ Ãâ·ÂÀ¸·Î | ¼¼·Î ¹æÇâÀ¸·Î Áß°£¿¡ | °¡·Î ¹æÇâÀ¸·Î Áß°£¿¡Ãâ·ÂÇϵµ·Ï ÇÕ´Ï´Ù. ÀÌ ÇàÀÌ ½ÇÇàµÇ¸é¼ Hello World! °¡ Ãâ·Â µË´Ï´Ù.
DrawText(hdc, szHello, _tcslen(szHello), &rt,
DT_SINGLELINE | DT_VCENTER | DT_CENTER);
À©µµ¿ì¿¡ DC¸¦ µ¹·ÁÁÝ´Ï´Ù.
EndPaint(hWnd, &ps);
case WM_PAINT ÀÇ ½ÇÇàÀ» ³¡³À´Ï´Ù.
break;
ÀÌ ¼³¸íÀÌ ÀÌÇØ°¡ ¾È°¡½Ã¸é ±×³É ³Ñ¾î°¡¼Åµµ µË´Ï´Ù. ´Ù¸¸ ¹Ýµå½Ã ±â¾ïÇØ¾ß ÇÒ °ÍÀº ¿©·¯ºÐÀº case WM_PAINT : ¿Í break; »çÀÌ¿¡(Á¤È®ÇÏ°Ô´Â BeginPaint ¿Í EndPaint »çÀÌ¿¡) ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. º»°ÝÀûÀÎ ÄÚµùÀº ´ÙÀ½ºÎÅÍÀÔ´Ï´Ù.
Hello World! ¹Ù²Ù±â
¸ÕÀú Hello World!¸¦ ¾È³çÇϼ¼¿ä? ·Î ¹Ù²Ù¾î º¾´Ï´Ù.
1. È¸é ¿ÞÂÊ ¾Æ·¡ÂÊ¿¡ 3°³ÀÇ ÅÇÀ» ãÀ¸¼¼¿ä. Class View, Resource View, File View 3°³ÀÇ ÅÇÀÌ ÀÖ½À´Ï´Ù. Ç¥½ÃµÇ±â·Î´Â ÅÇÀÇ Å©±â¿¡ µû¶ó Cl... Re... Fil... À¸·Î Ç¥½ÃµÇ¾î Àֱ⵵ ÇÕ´Ï´Ù. ÅÇ Áß °¡¿îµ¥ ÀÖ´Â Resource View ÅÇ(Re... ÅÇ)À» ´©¸¨´Ï´Ù. Exam02 classes¿¡¼ Exam02 resources·Î ¹Ù²ò´Ï´Ù.
2. Exam02 resources ´Â ÇÁ·Î±×·¥ ÄÚµå ¿Ü¿¡ ÇÁ·Î±×·¥¿¡¼ »ç¿ëÇÏ´Â ÀÚ¿øÀÔ´Ï´Ù. Exam02 resources¸¦ ´õºíŬ¸¯ÇÏ¸é ¿©·¯ °¡Áö ¸ñ·ÏÀÌ Ç¥½ÃµË´Ï´Ù. ±× Áß String TableÀ» ¼±ÅÃÇؼ ´Ù½Ã ´õºíŬ¸¯ ÇÕ´Ï´Ù. ¾Æ·¡ ¶Ç String Table[English(U.S.)] °¡ ³ªÅ¸³³´Ï´Ù.
3. String Table[English(U.S.)] ÀÇ ¾ð¾î¸¦ Çѱ۷Π¹Ù²Ù¾î¾ß ÇÕ´Ï´Ù. String Table[English(U.S.)]¸¦ ¼±ÅÃÇÑ »óÅ¿¡¼ ¿À¸¥ÂÊ ¸¶¿ì½º ¹öÆ°À» ´©¸£°í ³ªÅ¸³ª´Â Æ˾÷ ¸Þ´º¿¡¼ Á¦ÀÏ ¾Æ·¡ Properties¸¦ ¼±ÅÃÇÕ´Ï´Ù.
4. LanguageÄÞº¸ ¹Ú½ºÀÇ ³»¿ëÀ» English(U.S.)¿¡¼ Korean À¸·Î ¹Ù²ß´Ï´Ù. ¹Ù²Ù°í Enter¸¦ ´©¸£¸é String Table¿¡¼ English °¡ ¾ø¾îÁ³À» °ÍÀÔ´Ï´Ù. ÇöÀç ÄÄÇ»ÅÍÀÇ OS °¡ Çѱ¹¾îÀ̹ǷΠOS¿Í °°¾Æ Ç¥½Ã ÇÏÁö ¾Ê´Â °ÍÀÔ´Ï´Ù. ÀÌ Ç׸ñÀ» ¹Ù²ÙÁö ¾ÊÀ¸¸é Resource ´Â ÇѱÛÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. Çѱ۷ΠÀû¾îµµ ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§ Çѱ۷Πǥ½ÃµÇÁö ¾Ê½À´Ï´Ù.
5. String TableÀ» ´õºíŬ¸¯ ÇÕ´Ï´Ù. ¿À¸¥ÂÊ¿¡ String Table ÀÌ ³ªÅ¸³³´Ï´Ù. ID °¡ IDS_HELLO ÀÎ Ç׸ñÀÇ Caption ÀÌ Hello World! ·Î µÇ¾î ÀÖ½À´Ï´Ù.
6. IDS_HELLO¸¦ ¼±ÅÃÇؼ ´õºíŬ¸¯ÇÏ°í º¯°æ ȸéÀÌ ³ªÅ¸³ª¸é Hello World!¸¦ ¾È³çÇϼ¼¿ä? ·Î ¹Ù²Ù°í Enter Å°¸¦ ´©¸£¼¼¿ä.
7. ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ º¾´Ï´Ù. ¾È³çÇϼ¼¿ä?°¡ Ãâ·ÂµÇ¾ú½À´Ï±î?
º¯¼ö¿¡ °ª ÁÖ±â
1. Class View ÅÇÀ» ´©¸¨´Ï´Ù. WndProc¸¦ ´õºí Ŭ¸¯ÇÏ¿© WndProc ÇÔ¼ö·Î °©´Ï´Ù.
2. WndProc ¼±¾ð ¹Ù·Î ¹ØÀÇ º¯¼ö ¼±¾ðºÎ¿¡ ¾Æ·¡ Ç׸ñÀ» ã½À´Ï´Ù.
TCHAR szHello[MAX_LOADSTRING];
szHello ¹®ÀÚ¿ º¯¼ö°¡ ¼±¾ðµÈ °ÍÀÔ´Ï´Ù.(Á¤È®ÇÏ°Ô´Â ¹è¿ÀÔ´Ï´Ù¸¸...)
3. szHello¸¦ ´ÙÀ½°ú °°ÀÌ ÃʱâÈ ÇÕ´Ï´Ù.
TCHAR szHello[MAX_LOADSTRING] = Lµµ½Ã¹Ù E740ÀÔ´Ï´Ù.;
µû¿ÈÇ¥ ¾Õ¿¡ L ÀÌ Áß¿äÇÕ´Ï´Ù. »©¸ÔÀ¸¸é ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. TCHAR ÇüÀº À¯´ÏÄÚµå ÇüÅÂÀÇ ¹®ÀÚ¿À» ó¸®Çϱâ À§ÇÑ º¯¼öÇüÀÔ´Ï´Ù. LÀº µû¿ÈÇ¥ÀÇ ³»¿ëÀ» À¯´ÏÄÚµå·Î ó¸®Ç϶ó´Â °ÍÀÔ´Ï´Ù.
4. case WM_PAINT :¸¦ ã½À´Ï´Ù. ã¾ÒÀ¸¸é ±× ¾Æ·¡¿¡ LoadStringÀ» ã½À´Ï´Ù. ¾Æ·¡ ¹®ÀåÀ» ã¾Ò½À´Ï±î?
LoadString(g_hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
ÀÌ ¹®ÀåÀÌ Resource¿¡¼ IDS_HELLO ¿¡ ÇØ´çÇÏ´Â ¹®ÀÚ¿À» Àоî¿Í ¹®ÀÚ¿ º¯¼ö szHello ¿¡ ³Ö´Â ÄÚµåÀÔ´Ï´Ù. ÀÌ ÇàÀ» Áö¿ó´Ï´Ù. Áö¿ì±â°¡ ¾Æ±î¿ì½Ã¸é LoadString ¾Õ¿¡ //¸¦ ºÙ¿©µµ µË´Ï´Ù. ÄÚ¸àÆ®(¼³¸í¹®)·Î ¸¸µé¾î ¹ö¸®´Â °ÍÀÔ´Ï´Ù. //¸¦ ¾Õ¿¡ ³Ö¾úÀ» ¶§¿Í //À» ³ÖÁö ¾Ê¾ÒÀ» ¶§¸¦ ½ÇÇà½ÃÄÑ ºñ±³ÇØ º¸¼¼¿ä.
Áö±Ý »óȲÀ» ´Ù½Ã Á¤¸®Çϸé szHello º¯¼ö¸¦ ¼±¾ðÇÒ ¶§ µµ½Ã¹Ù E740ÀÔ´Ï´Ù¸¦ ¹Ù·Î ³Ö°í, IDS_HELLO Àоî¿À´Â °ÍÀ» »èÁ¦ÇÑ °ÍÀÔ´Ï´Ù.
5. ½ÇÇàÇϸé(F5) ȸ鿡 µµ½Ã¹Ù E740ÀÔ´Ï´Ù¶ó°í Ãâ·ÂµË´Ï±î?
¹®ÀÚ¿ º¹»ç
1. //LoadString(... ´ÙÀ½ ÁÙ¿¡ ¾Æ·¡ Ç׸ñÀ» Ãß°¡ÇØ º¾´Ï´Ù.
wcscpy( szHello, _T(»õÇØ¿¡´Â ÇູÇϼ¼¿ä));
¹®ÀÚ¿ º¯¼ö szHello ¿¡ »õÇØ¿¡´Â ÇູÇϼ¼¿ä À̶ó´Â ³»¿ëÀ» _T(...) ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ À¯´ÏÄÚµå·Î º¯È¯ÇÑ ´ÙÀ½ szHello ¿¡ ³Ö´Â °ÍÀÔ´Ï´Ù. _T( )¸¦ Áö¿ì°í µû¿ÈÇ¥ ¾Õ¿¡ LÀ» ³Ö¾îµµ µË´Ï´Ù.
wcscpy( szHello, L»õÇØ¿¡´Â ÇູÇϼ¼¿ä);
2. ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ º¸¼¼¿ä.(F5)
¹®ÀÚ¿ Ãâ·Â
1. wcscpy ´ë½Å¿¡ ¾Æ·¡ÀÇ ¹®ÀåÀ¸·Î Çصµ µË´Ï´Ù.
swprintf( szHello, LÁ¶¿ëÇÑ ¼Û³âÀ» º¸³À½Ã´Ù.);
ÇöÀç °á°ú°¡ °°Áö¸¸ Àǹ̴ Ʋ¸³´Ï´Ù. swprintf ´Â szHello ¶ó´Â º¯¼ö¿¡ °ªÀ» Ãâ·ÂÇÏ´Â °ÍÀÔ´Ï´Ù. º¹»çÇϱⰡ ¾Æ´Õ´Ï´Ù. Â÷ÀÌÁ¡Àº ´ÙÀ½½Ã°£¿¡ º¸¿©µå¸³´Ï´Ù.
Ãâ·Â À§Ä¡ º¯°æ
ȸ鿡 Ãâ·ÂÇÏ´Â ÇÔ¼ö´Â DrawText ÇÔ¼öÀÔ´Ï´Ù.
DrawText(hdc, szHello, _tcslen(szHello), &rt,
DT_SINGLELINE | DT_VCENTER | DT_CENTER);
1. DrawText ÇÔ¼ö¿¡¼ DT_VCENTER¸¦ ãÀ¸¼¼¿ä. ãÀ¸¼Ì½À´Ï±î? ãÀ¸¼ÌÀ¸¸é DT_VCENTER¸¦ DT_TOP À¸·Î ¹Ù²ã ½ÇÇà½ÃÄÑ º¸¼¼¿ä. ±×Ç׸ñÀÌ È¸éÀÇ(Á¤È®ÇÏ°Ô´Â »ç°¢Çü ÁÂÇ¥ rtÀÇ) À§, °¡¿îµ¥, ¾Æ·¡·Î Ãâ·Â À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù. DT_BOTTOMÀº ȸéÀÇ ¾Æ·¡¿¡ Ãâ·ÂÇϴµ¥ ÇÏ´ÜÀÇ ¸Þ´º µÚÆí¿¡ Ãâ·ÂÇϱ⠶§¹®¿¡ Áö±ÝÀº ³ªÅ¸³ªÁö ¾Ê½À´Ï´Ù. ³ªÅ¸³ªµµ·Ï ÇÏ´Â °ÍÀº ´ÙÀ½ ½Ã°£ ³»¿ë ÂüÁ¶. DT_BOTTOM Àº ¾ÆÁ÷ ÇÏÁö¸¶¼¼¿ä.
2. µÚÀÇ DT_CENTER¸¦ DT_LEFT ¿Í DT_RIGHT ·Î ¹Ù²Ù¾î Ãâ·ÂÇØ º¸¼¼¿ä. Á¿ì·Î Ãâ·ÂÀ§Ä¡°¡ ¹Ù²ð °ÍÀÔ´Ï´Ù.
´ÙÀ½ °ÀÇ¿¡¼´Â ¿©·¯ÁÙÀ» Ãâ·ÂÇØ º¸°Ú½À´Ï´Ù.
|