|
|||||
- File #1 : Image1801.jpg(), Download : 36 |
Á¡Â÷ µµ½Ã¹Ùµ¿À» ¶°³ª½Ã´Â ºÐµéÀÌ ¸¹±º¿ä. ¿À´ÃÀº °øÅë ´ÙÀ̾ó·Î±×¶ó´Â °ÍÀÔ´Ï´Ù. OS¿¡¼ Á¦°øÇÏ´Â ±âº» ´ÙÀ̾ó·Î±×°¡ ÀÖ½À´Ï´Ù. ÆÄÀÏ ¿±â, ÆÄÀÏ ÀúÀå, »ö»ó ¼±ÅÃ, Ãâ·Â µîÀÇ ´ÙÀ̾ó·Î±×ÀÔ´Ï´Ù. ÀÌµé ´ÙÀ̾ó·Î±×¸¦ ¾î¶»°Ô ¶ç¿ì´ÂÁö Çѹø ÇØ º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. Ãâ·Â ´ÙÀ̾ó·Î±×´Â ¼³Á¤ÀÌ ±î´Ù·Ó°í, ³»¿ëÀÌ º¹ÀâÇϸç, PDA ¿¡¼´Â °ÅÀÇ »ç¿ëÇÏÁö ¾Ê±â ¶§¹®¿¡(PDA·Î ÇÁ¸°Æà ÇϽô ºÐ?) °Á¿¡¼´Â ºüÁý´Ï´Ù. ÇÊ¿äÇϽŠºÐÀº ¿¬¶ôÁֽøé(¸®Çà µî) ¿¹Á¦¸¦ ¸¸µé¾î µå¸®°Ú½À´Ï´Ù. 1. »õ·Î¿î ÇÁ·ÎÁ§Æ® Exam17À» ¸¸µì´Ï´Ù. ±×¸®°í Hello World¸¦ Ãâ·ÂÇÏ´Â ºÎºÐÀ» »èÁ¦ÇÕ´Ï´Ù. 2. ¸Þ´º ¢¹ Project ¢¹ Settings... ·Î °¡¼Å¼ Link ÅÇÀÇ Object/Library Modules : Ç׸ñ¿¡¼ ¸¶Áö¸·¿¡ commdlg.lib¸¦ Ãß°¡ÇØ ÁÖ¼¼¿ä. 2. ¸®¼Ò½º ºä·Î °¡¼ Exam17 Resources ¢¹ MenuBar ¢¹ IDM_MENU[English(U.S.)]¸¦ ¶ç¿ì°í ¾ð¾î¸¦ Korean À¸·Î ¹Ù²ß´Ï´Ù. 3. ¸Þ´º¿¡ »ö»óº¯°æ, ÆÄÀÏ¿±â, ÆÄÀÏÀúÀå ¸Þ´º¸¦ Ãß°¡ÇÏ°í °¢°¢ ID¸¦ IDM_COLOR, IDM_OPEN, IDM_SAVE ·Î ÁöÁ¤ÇÕ´Ï´Ù. 4. Ŭ·¡½º ºä·Î °¡¼ WinMain ÇÔ¼ö·Î À̵¿ÇÑ ´ÙÀ½, Á¦ÀÏ À§ÀÇ #include ... ºÎºÐÀÇ ÀÇ ¸¶Áö¸·¿¡ #include CommDlg.h ¸¦ Ãß°¡ÇÕ´Ï´Ù. 5. ÀÌÁ¦ WndProc ÇÔ¼ö·Î °¡¼ WndProc ÀÇ Ã¹ ºÎºÐ¿¡ ¾Æ·¡¿Í °°ÀÌ º¯¼ö¸¦ Ãß°¡ÇÕ´Ï´Ù. ¢º OPENFILENAME ofn; ¢º TCHAR szFile[MAX_PATH] = L; ¢º CHOOSECOLOR cc; ¢º static COLORREF acrCustClr[16]; OPENFILENAME Çü º¯¼ö ofn Àº ÆÄÀÏÀ» ¿°Å³ª ÀúÀåÇÒ ¶§ »ç¿ëÇÏ´Â ´ÙÀ̾ó·Î±×¿¡°Ô Á¤º¸¸¦ Á¦°øÇϱâ À§ÇÑ ±¸Á¶Ã¼ÀÔ´Ï´Ù. ÀÌ ±¸Á¶Ã¼¿¡ Á¤º¸¸¦ ä¿ì°í GetOpenFileName ÇÔ¼ö³ª GetSaveFileName ÇÔ¼ö¸¦ È£ÃâÇϸé ÆÄÀÏ ¿±â³ª ÆÄÀÏ ÀúÀå ´ÙÀ̾ó·Î±×°¡ ³ªÅ¸³³´Ï´Ù. szFile Àº ÆÄÀϸíÀ» ÀúÀåÇϱâ À§ÇÑ ¹®ÀÚ¿ º¯¼öÀÔ´Ï´Ù. CHOOSECOLOR Çü º¯¼ö cc ´Â »ö»óÀ» ¼±ÅÃÇÏ´Â ´ÙÀ̾ó·Î±×¸¦ ¿¶§ Á¤º¸¸¦ Á¦°øÇÏ´Â ±¸Á¶Ã¼ÀÔ´Ï´Ù. COLORREF Çü ¹è¿ acrCustClr ´Â 16°³ÀÇ »ç¿ëÀÚ Á¤ÀÇ »ö»óÀ» ´ã±â À§ÇÑ °ÍÀ¸·Î¼ MSDNÀ» »ìÆ캸¸é static ÇüÀ¸·Î ¼±¾ðÇÏ¿© °ªÀ» Àü´ÞÇØ ÁÖ¶ó°í ÇÏ°í ÀÖ½À´Ï´Ù. ±×·¡¼ static ÇüÀ¸·Î ¼±¾ðÇÕ´Ï´Ù. 6. °¢ ¸Þ´º ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â ºÎºÐ¿¡ IDM_COLOR, IDM_OPEN, IDM_SAVE ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. switch (wmId) { ...... ¢º case IDM_COLOR: ¢º break; ¢º case IDM_OPEN: ¢º break; ¢º case IDM_SAVE: ¢º break; default: return DefWindowProc(hWnd, message, wParam, lParam); } 7. IDM_COLOR ¸Þ½ÃÁö ó¸® ºÎºÐÀ» ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù. case IDM_COLOR: ¢º memset( &cc, 0, sizeof(cc)); ¢º cc.lStructSize = sizeof(cc); ¢º cc.hwndOwner = hWnd; ¢º cc.rgbResult = RGB(255,0,0); ¢º cc.lpCustColors = acrCustClr; ¢º cc.Flags = CC_FULLOPEN | CC_RGBINIT; ¢º if( ChooseColor( &cc ) ) ¢º { ¢º // »ö»ó º¯°æ ÀÛ¾÷À» ÇÑ´Ù. ¢º } break; Çϳª Çϳª ¶â¾îº¸¸é ¾Æ·¡¿Í °°½À´Ï´Ù. º¸±â ½ÈÀ¸½Å ºÐÀº Åë°ú. memset( &cc, 0, sizeof(cc)); º¯¼ö cc¸¦ ¸ðµÎ 0À¸·Î ä¿ó´Ï´Ù. cc.lStructSize = sizeof(cc); º¯¼ö cc ÀÇ Å©±â¸¦ ±¸Á¶Ã¼ º¯¼ö lStructSize ¿¡ ³Ö½À´Ï´Ù. ÀÌ·¸°Ô ÇØ¾ß È£ÃâµÇ´Â ÇÔ¼ö°¡ ±¸Á¶Ã¼ÀÇ Å©±â¸¦ ¾Ë ¼ö ÀÖ½À´Ï´Ù. cc.hwndOwner = hWnd; ÀÌ ´ÙÀ̾ó·Î±×ÀÇ ¼ÒÀ¯ÀÚÀ» ³» À©µµ¿ì·Î ¼³Á¤ÇÕ´Ï´Ù. cc.rgbResult = RGB(255,0,0); óÀ½ »ö»óÀ» »¡°£»öÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. ¿ø·¡´Â º¯¼ö 󸮸¦ ÇØ ÁÖ¾î¾ß ÇÏÁö¸¸ ¸ñÀûÀÌ ±×³É »ö»ó ´ÙÀ̾ó·Î±×¸¦ ¶ç¿ì´Âµ¥ ÀÖÀ¸¹Ç·Î ±×³É »¡°£»öÀ¸·Î ÇÕ´Ï´Ù. »ö»ó ´ÙÀ̾ó·Î±×¿¡¼ OK ¹öÆ°À» ´©¸£¸é ÀÌ rgbResult °ªÀÌ ¼±ÅÃµÈ »ö»ó°ªÀ» °¡Áý´Ï´Ù. cc.lpCustColors = acrCustClr; »ç¿ëÀÚ°¡ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â 16°³ÀÇ »ö»ó Å×ÀÌºí ¹è¿À» ÁöÁ¤ÇÕ´Ï´Ù. cc.Flags = CC_FULLOPEN | CC_RGBINIT; »ö»ó ´ÙÀ̾ó·Î±×¸¦ ¿ ¶§ÀÇ ¿É¼ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¿©·¯ °¡Áö ´Ù¾çÇÑ ¿É¼ÇÀÌ ÀÖÁö¸¸ ±âº»ÀûÀ¸·Î »ç¿ëÇÏ´Â °ÍÀº À§ µÎ°³ÀÔ´Ï´Ù. Àǹ̴ MSDNÀ» ÂüÁ¶ÇϽðí(¾ÈÇϽðÚÁö¸¸) ±×³É ¿ø·¡ ±×·¯·Á´Ï ÇÏ½Ã°í ¾²½Ã¸é µË´Ï´Ù. if( ChooseColor( &cc ) ) { // »ö»ó º¯°æ ÀÛ¾÷À» ÇÑ´Ù. } »ö»ó ´ÙÀ̾ó·Î±×¸¦ ȸ鿡 ¶ç¿ó´Ï´Ù. »ö»óÀ» ´Ù ¼±ÅÃÇؼ OK ¹öÆ°À» ´©¸£¸é 0 ÀÌ ¾Æ´Ñ °ªÀÌ return µÇ¹Ç·Î Áß°ýÈ£{ } ¾È¿¡ »ö»ó º¯°æ Äڵ带 ³Ö¾î ÁÖ½Ã¸é µË´Ï´Ù. 8. IDM_OPEN ¸Þ½ÃÁö ó¸® ºÎºÐÀ» ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù. case IDM_OPEN: ¢º memset( &ofn, 0, sizeof(ofn)); ¢º ofn.lStructSize = sizeof(ofn); ¢º ofn.hwndOwner = hWnd; ¢º ofn.lpstrFile = szFile; ¢º ofn.nMaxFile = MAX_PATH; ¢º ofn.lpstrFilter = LBitmap (*.bmp) |
|
|