À̹ø ½Ã°£¿¡´Â Á÷Á¢ Çϵå¿þ¾î ¹öÆ°À» ´©¸£´Â °ÍÀ» °Ë»çÇØ º¸°Ú½À´Ï´Ù. ³ª»Û ÄÚµå´Ô²²¼´Â ÀÌ Äڵ尡 ÁøÂ¥ ³ª»Û ÄÚµåÀÎÁö °Ë»çÇØ ÁÖ¼¼¿ä. ^^ ±×·¯´Ï±î ´Ù¸¥ PDA ¼µµ µ¿ÀÛÇÏ´ÂÁö, ¾Æ´Ï¸é E740 ¿¡¼¸¸ µ¿ÀÛÇÏ´ÂÁö Å×½ºÆ® ÇØ ÁÖ¼¼¿ä.
1. Àü °ÀÇ¿¡ Çß¾ú´ø Exam14¸¦ ºÒ·¯³À´Ï´Ù. ¸Þ´ºÀÇ File ¢¹ Recent Workspaces... ³ª ¸Þ´ºÀÇ File ¢¹ Open Workspace¸¦ ÀÌ¿ëÇÏ¸é µË´Ï´Ù.
2. ¼Ò½ºÄÚµå·Î µé¾î°¡¼(WinMain ´õºíŬ¸¯) Á¦ÀÏ À§¿¡¼ Á¶±Ý¸¸ ³»·Á¿Â À§Ä¡ // Global Variables: À§¿¡ ¾Æ·¡¿Í °°ÀÌ ±¸Á¶Ã¼¸¦ Ãß°¡ÇÕ´Ï´Ù. (±¸Á¶Ã¼¿¡ ´ëÇÑ °ÍÀº ´Ù¸¥ C ¾ð¾î Ã¥ ÂüÁ¶ )
¢º typedef struct
¢º {
¢º short x, y;
¢º TCHAR butt[3];
¢º } HWBUTTDRAW_T;
// Global Variables:
HINSTANCE g_hInst; // The current instance
HWND g_hwndCB; // The command bar handle
ÀÌ °ÍÀº ȸ鿡 ¹öÆ°À» ±×¸± À§Ä¡¿Í ¹öÆ°ÀÇ ¸ð¾çÀ» ³ªÅ¸³¾ ¹®ÀÚ¸¦ ±â¾ï½ÃÅ°±â À§ÇÑ ±¸Á¶Ã¼ÀÔ´Ï´Ù.
3. // Global Variables: °¡ ¼±¾ðµÈ ¾Æ·¡¿¡ ¾Æ·¡¿Í °°ÀÌ Àü¿ª º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù.
// Global Variables:
HINSTANCE g_hInst; // The current instance
HWND g_hwndCB; // The command bar handle
¢º DWORD g_nChkButt = 0;
¢º BYTE g_aButtStat[13] = { 0 };
¢º HWBUTTDRAW_T g_aButtDraw[13] =
¢º {
¢º 40, 200, L¡á,
¢º 80, 200, L¡á,
¢º 150, 200, L¡á,
¢º 190, 200, L¡á,
¢º 110, 210, L¡ã,
¢º 130, 230, L¢º,
¢º 110, 250, L¡å,
¢º 90, 230, L¢¸,
¢º 110, 230, L¡á,
¢º 20, 40, L¡ã,
¢º 20, 80, L¡å,
¢º 20, 60, L¡á,
¢º 20, 20, L¡á,
¢º };
º¯¼ö g_nChkButt ´Â ¹öÆ°ÀÌ ´·ÈÀ» °æ¿ì ¹öÆ° ¸Þ½ÃÁö°¡ ÃÖ°í 3°³±îÁö ¿À±â ¶§¹®¿¡ À̸¦ °¢°¢ ±¸ºÐÇØ ÁÖ±â À§ÇÑ º¯¼öÀÔ´Ï´Ù.
¹è¿ g_aButtStat[13] ´Â °¢ ¹öÆ°ÀÇ »óŸ¦ ³ªÅ¸³»´Â ¹è¿ÀÔ´Ï´Ù. ¹öÆ°À» ´©¸£´Â °æ¿ì¸¦ ÃÑ 13°¡Áö·Î ±¸ºÐÇÏ¿´À¸¸ç °¢ ¹öÆ°¿¡ ÇØ´çÇÏ´Â ¹è¿ ¿ä¼ÒÀÇ ¹øÈ£´Â ±×¸² 1¹ø°ú °°½À´Ï´Ù. g_aButtStat[0] Àº ¹öÆ°1¹ø, g_aButtStat[1] Àº ¹öÆ° 2¹ø... ÇÏ´Â ½ÄÀ¸·Î Á¤ÇÏ¿´À¸¸ç 1ÀÌ¸é ¹öÆ°ÀÌ ´¸° °ÍÀÌ°í 0ÀÌ¸é ¹öÆ°ÀÌ ´¸®Áö ¾ÊÀº »óÅÂÀÔ´Ï´Ù.
¹è¿ g_aButtDraw[13] ´Â ȸ鿡 »Ñ¸± °¢ ¹öÆ°ÀÇ ÁÂÇ¥¿Í ¹öÆ° ±×¸²ÀÔ´Ï´Ù. ¹öÆ°ÀÇ ±×¸²À» ´Ù¸¥ °ÍÀ¸·Î Çѹø ¹Ù²ã º¸¼¼¿ä. Çϳª¾¿¸¸ ¹Ù²ã¼ ½ÇÇà½ÃÄÑ º¸¸é ¾î¶»°Ô µÇ´ÂÁö¸¦ ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
4. MyTextOut ÇÔ¼ö¸¦ ´Ù¸¥ °ÀÇ¿¡¼ º¹»çÇؼ WinMain ÇÔ¼ö À§¿¡ ºÙ¿©³Ö±â ÇÕ´Ï´Ù.(5° ÂüÁ¶)
5. ¾Æ·¡¿Í °°Àº ÇÔ¼ö¸¦ WinMain ÇÔ¼ö À§¿¡ ÀÔ·ÂÇÕ´Ï´Ù.
¢ºvoid DrawHWButton( HDC hdc )
¢º{
¢º int i;
¢º
¢º for( i=0; i<=12; i++ )
¢º {
¢º if( g_aButtStat[i] == 1 )
¢º SetTextColor( hdc, RGB(255,0,0) );
¢º else
¢º SetTextColor( hdc, RGB(0,0,0) );
¢º MyTextOut( hdc, g_aButtDraw[i].x, g_aButtDraw[i].y,
¢º g_aButtDraw[i].butt );
¢º }
¢º}
ÀÌ ÇÔ¼ö´Â ȸ鿡 ¹öÆ°À» »Ñ¸®´Â ÇÔ¼öÀÔ´Ï´Ù. ȸ鿡 ¹öÆ°À» ±×¸®±â À§ÇØ DC¸¦ Àμö·Î ¹Þ½À´Ï´Ù.
for( i=0; i<=12; i++ )
¹öÆ°ÀÇ °æ¿ìÀÇ ¼ö°¡ ÃÑ 13°¡ÁöÀ̱⿡ 0ºÎÅÍ 12±îÁö 13¹ø ¹Ýº¹ÇÕ´Ï´Ù.
if( g_aButtStat[i] == 1 )
SetTextColor( hdc, RGB(255,0,0) );
else
SetTextColor( hdc, RGB(0,0,0) );
°¢ ¹öÆ°ÀÇ »óÅ¿¡ µû¶ó ¹öÆ°ÀÇ »öÀ» ´Þ¸®ÇÕ´Ï´Ù. ¹öÆ° »óŸ¦ ³ªÅ¸³»´Â ¹è¿ g_aButtStatÀÇ i ¹ø°ÀÇ °ªÀÌ 1 ÀÌ¸é ´¸° °ÍÀ̹ǷΠ»¡°£»öÀ», ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â °ËÀº»öÀ¸·Î Ãâ·ÂÇϵµ·Ï Çß½À´Ï´Ù.
MyTextOut( hdc, g_aButtDraw[i].x, g_aButtDraw[i].y,
g_aButtDraw[i].butt );
ÁöÁ¤µÈ À§Ä¡¿¡ ¹öÆ°À» Ãâ·ÂÇÕ´Ï´Ù. g_aButtDraw[i].x ´Â i¹ø° ¹öÆ°ÀÇ °¡·Î ÁÂÇ¥À̸ç, g_aButtDraw[i].y´Â i ¹ø° ¹öÆ°ÀÇ ¼¼·Î ÁÂÇ¥ÀÔ´Ï´Ù. g_aButtDraw[i].butt ´Â ¹öÆ°ÀÇ ¸ð¾çÀÔ´Ï´Ù.
6. WndProc ÇÔ¼öÀÇ WM_PAINT¸¦ ó¸®ÇÏ´Â °÷À¸·Î °¡¼ Hello World!¸¦ Ãâ·ÂÇÏ´Â Äڵ带 »èÁ¦ÇÕ´Ï´Ù.
7. WM_PAINT ºÎºÐÀ» ¾Æ·¡¿Í °°ÀÌ ¼öÁ¤ÇÕ´Ï´Ù.
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
¢º DrawHWButton( hdc );
EndPaint(hWnd, &ps);
break;
DrawHWButton ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¹öÆ° ¸ð¾çÀ» ȸ鿡 ±×¸®´Â °ÍÀÔ´Ï´Ù.
8. ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°¸é(F5) ȸ鿡 ¹öÆ° ¸ð¾çÀÌ ³ªÅ¸³³´Ï´Ù. ±×·¯³ª ¹öÆ°À» ´·¯µµ ¾Æ¹«·± ¹ÝÀÀÀÌ ¾ø½À´Ï´Ù. ¹öÆ°À» ó¸®ÇÏ´Â ºÎºÐÀ» ¸¸µéÁö ¾Ê¾Ò±â ¶§¹®ÀÔ´Ï´Ù.
9. ´Ù½Ã WinMain ¹Ù·Î À§¿¡ ¾Æ·¡¿Í °°Àº ÇÔ¼ö¸¦ Ãß°¡ÇÕ´Ï´Ù. ¹«Ã´ ±é´Ï´Ù.
¢ºvoid CheckHWButton( UINT msg, WPARAM wParam )
¢º{
¢º // Two Navi Mid Push
¢º if( g_nChkButt == 0 && msg == WM_KEYDOWN && wParam == 0x86 )
¢º {
¢º g_nChkButt = 1;
¢º g_aButtStat[ 8 ] = 1;
¢º g_aButtStat[ 11 ] = 1;
¢º }
¢º else if( g_nChkButt == 1 && msg == WM_KEYUP && wParam == 0x0d )
¢º g_nChkButt = 0;
¢º // Two Navi Mid Pop
¢º else if( g_nChkButt == 0 && msg == WM_KEYDOWN && wParam == 0x0d )
¢º {
¢º g_aButtStat[ 8 ] = 0;
¢º g_aButtStat[ 11 ] = 0;
¢º g_nChkButt = 2;
¢º }
¢º else if( g_nChkButt == 2 && msg == WM_KEYUP && wParam == 0x86 )
¢º g_nChkButt = 0;
¢º
¢º // navi Up Push
¢º else if( g_nChkButt == 0 && msg == WM_KEYDOWN && wParam == 0x26 )
¢º g_nChkButt = 3;
¢º else if( g_nChkButt == 3 && msg == WM_KEYDOWN )
¢º {
¢º g_nChkButt = 0;
¢º if( wParam == 0x83 ) g_aButtStat[ 9 ] = 1; // Left
¢º if( wParam == 0x84 ) g_aButtStat[ 4 ] = 1; // Front
¢º }
¢º // navi Up Pop
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0x26 )
¢º g_nChkButt = 4;
¢º else if( g_nChkButt == 4 && msg == WM_KEYUP )
¢º {
¢º g_nChkButt = 0;
¢º if( wParam == 0x83 ) g_aButtStat[ 9 ] = 0; // Left
¢º if( wParam == 0x84 ) g_aButtStat[ 4 ] = 0; // Front
¢º }
¢º
¢º // Left navi down Push
¢º else if( g_nChkButt == 0 && msg == WM_KEYDOWN && wParam == 0x28 )
¢º g_nChkButt = 5;
¢º else if( g_nChkButt == 5 && msg == WM_KEYDOWN )
¢º {
¢º g_nChkButt = 0;
¢º if( wParam == 0x83 ) g_aButtStat[ 10 ] = 1; // Left
¢º if( wParam == 0x84 ) g_aButtStat[ 6 ] = 1; // Front
¢º }
¢º // Left navi down Pop
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0x28 )
¢º g_nChkButt = 6;
¢º else if( g_nChkButt == 6 && msg == WM_KEYUP )
¢º {
¢º g_nChkButt = 0;
¢º if( wParam == 0x83 ) g_aButtStat[ 10 ] = 0; // Left
¢º if( wParam == 0x84 ) g_aButtStat[ 6 ] = 0; // Front
¢º }
¢º
¢º // Front navi down push
¢º else if( g_nChkButt == 0 && msg == WM_KEYDOWN && wParam == 0x28 )
¢º {
¢º g_aButtStat[ 6 ] = 1;
¢º g_nChkButt = 8;
¢º }
¢º else if( g_nChkButt == 8 && msg == WM_KEYDOWN && wParam == 0x84 )
¢º g_nChkButt = 0;
¢º
¢º // Front navi down pop
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0x28 )
¢º {
¢º g_aButtStat[ 6 ] = 0;
¢º g_nChkButt = 9;
¢º }
¢º else if( g_nChkButt == 9 && msg == WM_KEYUP && wParam == 0x84 )
¢º g_nChkButt = 0;
¢º
¢º // Front navi left push
¢º else if( g_nChkButt == 0 && msg == WM_KEYDOWN && wParam == 0x25 )
¢º {
¢º g_aButtStat[ 7 ] = 1;
¢º g_nChkButt = 10;
¢º }
¢º else if( g_nChkButt == 10 && msg == WM_KEYDOWN && wParam == 0x84 )
¢º g_nChkButt = 0;
¢º
¢º // Front navi left pop
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0x25 )
¢º {
¢º g_aButtStat[ 7 ] = 0;
¢º g_nChkButt = 11;
¢º }
¢º else if( g_nChkButt == 11 && msg == WM_KEYUP && wParam == 0x84 )
¢º g_nChkButt = 0;
¢º
¢º // Front navi right push
¢º else if( g_nChkButt == 0 && msg == WM_KEYDOWN && wParam == 0x27 )
¢º {
¢º g_aButtStat[ 5 ] = 1;
¢º g_nChkButt = 12;
¢º }
¢º else if( g_nChkButt == 12 && msg == WM_KEYDOWN && wParam == 0x84 )
¢º g_nChkButt = 0;
¢º
¢º // Front navi right pop
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0x27 )
¢º {
¢º g_aButtStat[ 5 ] = 0;
¢º g_nChkButt = 13;
¢º }
¢º else if( g_nChkButt == 13 && msg == WM_KEYUP && wParam == 0x84 )
¢º g_nChkButt = 0;
¢º
¢º // Button push
¢º else if( g_nChkButt == 0 && msg == WM_KEYDOWN && wParam == 0x5b )
¢º g_nChkButt = 13;
¢º else if( g_nChkButt == 13 && msg == WM_KEYDOWN )
¢º {
¢º g_nChkButt = 14;
¢º
¢º // Button one push
¢º if( wParam == 0xc1 ) g_aButtStat[ 0 ] = 1; // Button 1
¢º if( wParam == 0xc2 ) g_aButtStat[ 1 ] = 1; // Button 2
¢º if( wParam == 0xc3 ) g_aButtStat[ 2 ] = 1; // Button 3
¢º if( wParam == 0xc4 ) g_aButtStat[ 3 ] = 1; // Button 4
¢º if( wParam == 0xc5 ) g_aButtStat[ 12 ] = 1; // Button 5
¢º }
¢º else if( g_nChkButt == 14 && msg == WM_KEYUP && wParam == 0x5b )
¢º g_nChkButt = 0;
¢º
¢º // Button pop
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0xc1 )
¢º g_aButtStat[ 0 ] = 0;
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0xc2 )
¢º g_aButtStat[ 1 ] = 0;
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0xc3 )
¢º g_aButtStat[ 2 ] = 0;
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0xc4 )
¢º g_aButtStat[ 3 ] = 0;
¢º else if( g_nChkButt == 0 && msg == WM_KEYUP && wParam == 0xc5 )
¢º g_aButtStat[ 12 ] = 0;
¢º}
Àüȸ °ÁÂÀÇ Çϵå¿þ¾î ¹öÆ° ´·¶À» ¶§ÀÇ ¸Þ½ÃÁö Å×À̺íÀ» ±âÁØÀ¸·Î Çؼ ¸¸µç ¹öÆ° °Ë»ç ÇÔ¼öÀÔ´Ï´Ù. ³Ê¹« ±æ¾î ÀÔ·ÂÇϱ⠺ÒÆíÇÏ°í ÀÔ·Â ¿À·ùÀÇ °¡´É¼ºµµ ÀÖÀ¸´Ï º¹»çÇؼ ºÙ¿©³Ö±â ÇÏ½Ã°í ¢º ¸¸ Á¦°ÅÇؼ »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼ Çϵå¿þ¾î ¹öÆ°ÀÌ ÇÊ¿äÇϽŠ°æ¿ì ÀÌ ºÎºÐÀ» º¹»çÇؼ ¾²½Ã¸é µË´Ï´Ù.
¿©±â¼´Â WndProc ÇÔ¼ö¿¡¼ WM_KEYDOWN À̳ª WM_KEYUP ¸Þ½ÃÁö°¡ ¹ß»ýÇßÀ» ¶§ È£ÃâÇϵµ·Ï ÇÔÀ¸·Î½á Çϵå¿þ¾î ¹öÆ°ÀÌ ´¸° °ÍÀ» °Ë»çÇÏ´Â °ÍÀÔ´Ï´Ù. Àμö´Â À©µµ¿ì ¸Þ½ÃÁö¿Í Ãß°¡µÇ´Â ÀμöÀÎ wParam °ªÀÔ´Ï´Ù. wParam °ªÀº Å°º¸µå°¡ ´·ÈÀ» ¶§ ´¸° Å°ÀÇ °ªÀ» °¡Áö°í ÀÖ½À´Ï´Ù.
ÀüºÎ ¼³¸íÇϱâ´Â ¾î·Á¿ï °Í °°°í ¾ÕºÎºÐ¸¸ ¿ì¼± ¼³¸íÀ» µå¸®°Ú½À´Ï´Ù.
// Two Navi Mid Push
if( g_nChkButt == 0 && msg == WM_KEYDOWN && wParam == 0x86 )
{
g_nChkButt = 1;
g_aButtStat[ 8 ] = 1;
g_aButtStat[ 11 ] = 1;
}
g_nChkButt °¡ 0 À̶ó´Â °ÍÀº ¹öÆ°ÀÌ ´¸° ÈÄ Ã³À½ Å° ¸Þ½ÃÁö°¡ ¿Ô´Ù´Â °ÍÀÔ´Ï´Ù. ±×¸®°í msg °¡ WM_KEYDOWN ÀÌ°í Å° °ªÀÌ 0x86 ÀÎ °æ¿ì °¡¿îµ¥ ³×ÀÌ°ÔÀÌ¼Ç ¹öÆ°(»óÇÏÁ¿ì À̵¿¹öÆ°)À̰ųª ¿ÞÂÊ ³×ºñ°ÔÀÌ¼Ç ¹öÆ°(À§¾Æ·¡ À̵¿¹öÆ°)ÀÇ °¡¿îµ¥ ´·È´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¯¸é ´ÙÀ½¹ø °Ë»ç¸¦ À§ÇØ g_nChkButt °ªÀ» 1 ·Î ¹Ù²ß´Ï´Ù.
±×¸®°í ³×ºñ°ÔÀÌ¼Ç ¹öÆ°Àº °¡¿îµ¥¸¦ ´©¸£´Â °æ¿ì ¾Õ ¹öÆ°À̳ª ¿· ¹öÆ°ÀÌ ¸ðµÎ °°Àº ¸Þ½ÃÁö°¡ ¹ß»ýÇÕ´Ï´Ù. ±×·¡¼ 2°³ÀÇ ¹öÆ°ÀÌ µ¿½Ã¿¡ ´¸° °Íó·³ °ªÀ» Ç¥½ÃÇÏ´Â ¼ö¹Û¿¡ ¾ø½À´Ï´Ù. ±¸ºÐ ºÒ°¡´É...
else if( g_nChkButt == 1 && msg == WM_KEYUP && wParam == 0x0d )
g_nChkButt = 0;
´Ù½Ã g_nChkButt °ªÀÌ 1ÀÎ »óŶó´Â °ÍÀº ÀÌÀü¿¡ Çѹø ¸Þ½ÃÁö°¡ ¿Ô¾ú´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ±×¸®°í ±× ´ÙÀ½ ¸Þ½ÃÁö°¡ WM_KEYUP ÀÌ°í Å° °ªÀÌ 0x0d ÀÌ¸é ¹öÆ° ´¸° °Í¿¡ ´ëÇÑ ¸Þ½ÃÁö°¡ ¸ðµÎ µµÂøÇÑ °ÍÀÔ´Ï´Ù. (Áß¾Ó ¹öÆ°Àº ¸Þ½ÃÁö°¡ 2°³°¡ ¿É´Ï´Ù¸¸ Àç¹Ì ÀÖ´Â °ÍÀº ´©¸¥ »óÅ¿¡¼ WM_KEYDOWN °ú WM_KEYUP ÀÌ °°ÀÌ ¿Â´Ù´Â °ÍÀÔ´Ï´Ù. ¿Ö ÀÌ·¸°Ô ¸¸µé¾ú´ÂÁö µµÅë ÀÌÇØ ¾ÈµÊ) ´ÙÀ½ Å°ÀÇ ÀÔ·Â °Ë»ç¸¦ À§ÇØ g_nChkButt ÀÇ °ªÀ» 0 À¸·Î ¸¸µì´Ï´Ù.
ÀÌÀü °ÁÂÀÇ ¹öÆ° ¸Þ½ÃÁö Å×À̺í°ú À̹ø ÇÔ¼ö¸¦ ºñ±³Çؼ ¾î¶»°Ô ó¸®Çß´ÂÁö¸¦ Çѹø ¿¬±¸ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù. µµÀúÈ÷ ÀÌÇØ ¾ÈµÈ´Ù°í ÇÏ¸é ´Ù½Ã ÀÏÀÏÀÌ °¢ Äڵ庰·Î ¼³¸íÇÏ´Â °ÍÀ» Çѹø °í·ÁÇØ º¸Áö¿ä... À¸À¸... ¹«¼¿ö... ¸®ÇÃÀÌ ¾È´Þ¸®´Â °ÍÀ» ¾Ë±â ¶«½Ã ÀÌ·¸°Ô Àû´Â°ÅÁÒ ÈåÈå... À̰Ŷ«¿¡ ¸®Çà ´ÞÁö¸¶¼¼¿ä. ÇØ´Þ¶ó°í...
10. WndProc ÇÔ¼ö·Î °¡¼ WM_PAINT ¸Þ½ÃÁö ÀÇ break; ¹® ¾Æ·¡¿¡ ¾Æ·¡¿Í °°ÀÌ Äڵ带 Ãß°¡ÇÕ´Ï´Ù. WM_KEYDOWN ¸Þ½ÃÁö¿Í WM_KEYUP ¸Þ½ÃÁö¸¦ ó¸®Çϱâ À§ÇÑ °ÍÀÔ´Ï´Ù.
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
DrawHWButton( hdc );
EndPaint(hWnd, &ps);
break;
¢º case WM_KEYDOWN :
¢º case WM_KEYUP :
¢º CheckHWButton( message, wParam );
¢º hdc = GetDC( hWnd );
¢º DrawHWButton( hdc );
¢º ReleaseDC( hWnd, hdc );
¢º break;
case WM_DESTROY:
...
WM_KEYDOWN À̳ª WM_KEYUP ¸Þ½ÃÁö°¡ ¿À¸é À§¿¡ ±æ´Ù¶þ°Ô Çø¿À½º·¯¿î CheckHWButton ÇÔ¼ö¸¦ È£ÃâÇؼ ¾î´À ¹öÆ°ÀÌ ´·È³ª¸¦ °Ë»çÇÕ´Ï´Ù. ±×¸®°í DC¸¦ ¾òÀº ´ÙÀ½ ȸ鿡 ¹öÆ°À» ±×¸®´Â ÇÔ¼ö DrawHWButton¸¦ È£ÃâÇؼ ȸ鿡 ¹öÆ°À» ±×¸®°í DC¸¦ µ¹·ÁÁÝ´Ï´Ù. ³Ê¹« ±æ¾î¼ ¾ó¸¥ ¾ó¸¥ ³¡³»±â À§ÇØ...
11. ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ º¸¼¼¿ä. Çϵå¿þ¾î ¹öÆ°À» ´©¸£¸é ȸ鿡 Ç¥½Ã°¡ Àß µÇ³ª¿ä?
À§ ȸéÀº ¹öÆ° 1¹øÀ» ´©¸¥ »óÅ¿¡¼ ´ë°¢¼± ¾Æ·¡·Î ´©¸£°í ȸé ĸÃÄÇÑ °ÍÀÔ´Ï´Ù. ¾Æ Èûµé¾î ^^ ±Ùµ¥ °ÀÇ°¡ Á¡Á¡ ÇãÁ¢ÀÌ µÇ¾î°£´Ù´Â... Å«ÀÏÀε¥...
|