¶ó.µµÇü »èÁ¦Çϱâ

¼±ÅÃµÈ µµÇüÀº ÆíÁý ´ë»óÀ¸·Î »ç¿ëµÇ´Âµ¥ °¡Àå °£´ÜÇÑ »èÁ¦ ±â´ÉºÎÅÍ ÀÛ¼ºÇØ º¸ÀÚ. µµÇüÀ» »èÁ¦ÇÏ´Â °ÍÀº ¾ÆÁÖ °£´ÜÇؼ­ ¹è¿­¿¡¼­ ÀÌ µµÇü¿¡ ´ëÇÑ Á¤º¸¸¦ Áö¿ì±â¸¸ ÇÏ¸é µÈ´Ù. ¹è¿­ ¿ä¼Ò°¡ ±¸Á¶Ã¼ Æ÷ÀÎÅÍÀ̹ǷΠÀÌ Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ±¸Á¶Ã¼¸¦ ¸ÕÀú ÇØÁ¦ÇÏ°í memmove ÇÔ¼ö·Î µÚÂÊ µµÇü Á¤º¸¸¦ ¾ÕÂÊÀ¸·Î ÇÑÄ­¾¿ À̵¿½ÃÄÑ ÀÌ Æ÷ÀÎÅ͸¦ Áö¿î´Ù. ±×¸®°í arNumÀ» 1°¨¼Ò½ÃÄÑ Àüü µµÇü °³¼öµµ Çϳª °¨¼Ò½ÃŲ´Ù. ÀÌ µ¿ÀÛÀ» ÇÏ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇÑ´Ù.

 

void DelObject(int idx)

{

   free(arObj[idx]);

   memmove(arObj+idx,arObj+idx+1,(arNum-idx-1)*sizeof(DObject *));

   arNum--;

}

 

WM_COMMAND¿¡¼­ »èÁ¦ ¸í·ÉÀ» ³»¸± ¶§ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¼±ÅÃµÈ µµÇüÀ» »èÁ¦ÇÑ´Ù. ¹°·Ð ¼±ÅÃµÈ µµÇüÀÌ ÀÖÀ» ¶§¸¸ »èÁ¦ÇØ¾ß ÇÏ¸ç µµÇüÀÌ »èÁ¦µÈ ÈÄ ¼±ÅÃÀ» ÇØÁ¦ÇÑ´Ù. ¹è¿­¿¡¼­ µµÇüÀ» »èÁ¦ÇÑ ÈÄ ÀÛ¾÷ ¿µ¿ªÀ» ¹«È¿È­½ÃÅ°±â¸¸ Çϸé OnPaint°¡ ¹æ±Ý Áö¿öÁø µµÇü¸¸ »©°í ¸ðµç µµÇüÀ» ´Ù½Ã ±×¸®¹Ç·Î È­¸é¿¡¼­µµ µµÇüÀÌ »ç¶óÁú °ÍÀÌ´Ù.

 

LRESULT OnCommand(HWND hWnd,WPARAM wParam,LPARAM lParam)

{

   switch(LOWORD(wParam)) {

   case IDM_POPUP_DELETE:

      if (NowSel != -1) {

          DelObject(NowSel);

          NowSel=-1;

          InvalidateRect(hWnd,NULL,TRUE);

      }

      break;

   }

   return 0;

}

 

ĵ¹ö½º´Â ¸ÞÀÎ ¸Þ´º´Â °¡ÁöÁö ¾ÊÀ¸¸ç ´ë½Å Æ˾÷ ¸Þ´º¸¦ °¡Áö°í ÀÖ´Ù. ¾ÆÁ÷ Æ˾÷ ¸Þ´º´Â ºÙÀÌÁö ¾Ê¾Ò´Âµ¥ IDM_POPUP_DELETE¶ó´Â ID´Â Æ˾÷ ¸Þ´ºÀÇ »èÁ¦ Ç׸ñÀÌ´Ù. ÀÌ ¸í·É ¿Ü¿¡ ¸ÞÀÎ ¸Þ´º¿¡µµ »èÁ¦ ¸í·ÉÀÌ ÀÖÀ¸¹Ç·Î ¿©±â¼­µµ ¶È°°Àº µ¿ÀÛÀ» ÇØ¾ß ÇÑ´Ù. µÎ ¸Þ´º°¡ °°Àº ¸í·ÉÀ» ó¸®ÇÒ ¶§´Â ÇÑÂÊ ¸Þ´º¿¡¸¸ Äڵ带 ÀÛ¼ºÇÏ°í ´Ù¸¥ÂÊ¿¡¼­´Â ÀÌ ¸Þ½ÃÁö¸¦ º¸³»µµ·Ï ÇÏ´Â °ÍÀÌ ÁÁ´Ù.

 

LRESULT Main_OnCommand(HWND hWnd,WPARAM wParam,LPARAM lParam)

{

   switch(LOWORD(wParam)) {

   case IDM_FILE_EXIT:

      DestroyWindow(hWnd);

      break;

   case IDM_EDIT_DELETE:

      SendMessage(hCanvas,WM_COMMAND,MAKEWPARAM(IDM_POPUP_DELETE,0),0);

      break;

 

¸ÞÀÎ À©µµ¿ì´Â ĵ¹ö½º¿¡°Ô WM_COMMAND¸¦ º¸³» Æ˾÷ ¸Þ´ºÀÇ »èÁ¦ ó¸® Äڵ带 È£ÃâÇÑ´Ù. ¸ÞÀÎ ¸Þ´ºÀÇ »èÁ¦ ¸í·ÉÀº »ç¿ëÀÚ¿Í Äµ¹ö½º¸¦ À̾îÁÖ´Â Áß°è ¿ªÇÒ¸¸ ÇÏ°í Àִµ¥ ²À ÀÌ·¸°Ô »èÁ¦ ¸í·ÉÀ» ¾çÂÊ¿¡ µÎ¾î¾ß ÇÏ´Â ÀÌÀ¯´Â Â÷Àϵå´Â ºÎ¸ðÀÇ ±â´É¿¡ »ó°ü¾ø´Â µ¶¸³¼ºÀ» °¡Á®¾ß Çϱ⠶§¹®ÀÌ´Ù. ¶ÇÇÑ Â÷Àϵ尡 ¾×¼¿·¯·¹ÀÌÅ͸¦ Á÷Á¢ ó¸®ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ºÎ¸ð°¡ ¾×¼¿·¯·¹ÀÌÅÍ ÀÔ·ÂÀ» ´ë½Å ¹Þ¾Æ ÁÖ¾î¾ß ÇÑ´Ù.