¸Þ´º ¹× Åø¹Ù Áö¿ø

 

 ÀÌÁ¦ ¸Þ´º¿Í Åø¹Ù¸¦ Áö¿øÇغ¸ÀÚ. ¸Þ´º¿Í Åø¹Ù´Â C++¿¡ ºñÇØ ¾à°£ ¹ø°Å·Ó´Ù. ÀÌ ¹ø°Å·Î¿òÀº ±¸Á¶¸¦ ±ò²ûÇϱâ À§ÇØ Microsoft»ç¿¡¼­ Æ÷±âÇÑ ºÎºÐÁß ÇϳªÀÎ µíÇÏ´Ù. ±×·¸´Ù°í ¾öû º¹ÀâÇϰÍÀº ¾Æ´Ï°í, ¶ÇÇÑ ÇÁ·Î±×·¥ ¸¸µé¶§ ÇѹøÇÏ´Â °ÍÀ̹ǷΠÇϳª¾¿ µû¶óÇØ º¸±â ¹Ù¶õ´Ù.

   ½ÇÁ¦ ÇÁ·Î±×·¥ Á¦ÀÛ¿¡¼­ ¼³¸íÇÑ ¹æ½ÄÀ¸·Î MenuToolbar¶ó´Â ÇÁ·ÎÁ§Æ®¸¦ ¸¸µçÈÄ, ¼Ö·ç¼Ç Ž»ö±â¿¡¼­ Form1.cs¸¦ MenuToolbar.cs·Î º¯°æÇϰí, ¼Ó¼ºÃ¢¿¡¼­ (Name)À» MainFormÀ¸·Î Text¸¦ ¸Þ´º ¹× Åø¹Ù·Î·Î  º¯°æÇϸç, Source¿¡¼­ Form1À» MainFormÀ¸·Î º¯°æÇÏ¿© Á¦ÀÛÇÑ´Ù.

   MenuToolbar.cs µðÀÚÀÎÀ» ¼±ÅÃÇϰí ÁÂÃø »ó´ÜÀÇ µµ±¸ »óÀÚ¿¡ ¸¶¿ì½º¸¦ µÎ¸é È­¸é¿¡ ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³­´Ù.

   ¸ÞÀÎ ¸Þ´ºÀ» ¼±ÅÃÇϰí MenuToolbar.cs µðÀÚÀ̳ʿ¡ ¸¶¿ì½º ¿ÞÂÊ ¹öưÀ» ´©¸£°Å³ª ¸¶¿ì½º·Î µå·¡±× ¾Ø µå·ÓÇÏ¸é ´ÙÀ½°ú °°ÀÌ ÇÏ´Ü¿¡ MainMenu1ÀÌ Ãß°¡µÈ´Ù.

   MainMenu1À» MainMenu·Î ¼öÁ¤ÇÏ°í µðÀÚÀ̳ÊÀÇ "¿©±â¿¡ ÀÔ·ÂÇϽʽÿÀ"¿¡ ¸¶¿ì½º¸¦ Ŭ¸¯ÇÏ¸é ´ÙÀ½°ú °°ÀÌ ¸Þ´º¾ÆÀÌÅÛÀÌ Ãß°¡ µÇ¸ç ÀÔ·Â ¸ðµå·Î º¯È¯µÈ´Ù

   ¿øÇÏ´Â ¸Þ´º À̸§À» ÀÔ·ÂÇÏ¸é µÈ´Ù. ¿©±â¿¡¼­ °¡Àå Áß¿äÇÑ °ÍÀº ¼Ó¼ºÃ¢¿¡ (Name)ÀÌ menuItem1À¸·Î ÀÚµ¿À¸·Î »ý¼ºÀÌ µÇ´Âµ¥ ÀÌ À̸§¿¡ ÀÇÇØ ¸Þ´º ¼±Åýà ȣÃâµÉ ÇÔ¼ö°¡ °áÁ¤µÇ¹Ç·Î ²À À̸§À» º¯°æÇϱ⠹ٶõ´Ù. ¿¹¸¦ µé¾î ¸Þ´º À̸§À» ÆÄÀÏ(&F)·Î ÀÔ·ÂÇß´Ù¸é (Name)À» menuFile·Î ÀÔ·ÂÇÏ¿© ±¸ºÐÀÌ °¡´ÉÇϵµ·Ï ÇÑ´Ù.

  ¼Ó¼º Áß ShortcutÀº ´ÜÃàŰ ¼³Á¤ÀÌ´Ù. ´ÜÃàŰ´Â Á¤ÀÇ µÇ¾î Àִ Űµé Áß ¼±ÅÃÇÏ´Â ¹æ½ÄÀ¸·Î ¸ðµç۰¡ ´Ù µÇ´Â °ÍÀº ¾Æ´Ï´Ù. ¿¹¸¦ µé¾î ¾Æ·¡¾Æ Çѱۿ¡¼­ »ç¿ëÇÏ´Â Á¾·áŰÀÎ Alt + X´Â Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ²À Alt + X·Î ´ÜÃà۸¦ ¸¸µé°íÀÚ ÇÑ´Ù¸é Űº¸µå 󸮸¦ ÀÌ¿ëÇÏ¿© ¼öµ¿À¸·Î ¸¸µé¾î¾ß¸¸ ÇÑ´Ù. À§ ±×¸²¿¡¼­ º¸¸é ShowShortcut ¼Ó¼ºÀÌ true·Î µÇ¾î ÀÖ´Â °ÍÀ» ¾Ë¼ö ÀÖ´Ù. µû¶ó¼­ ´ÜÃàŰ ¼³Á¤¸¸ ÇÏ¸é ¸Þ´º¿¡ ±× ´ÜÃà۰¡ ÀÚµ¿À¸·Î Ç¥½ÃµÈ´Ù.

   ¸Þ´ºÀ̸§¿¡ -Çϳª¸¦ ÀÔ·ÂÇÏ¸é ±¸ºÐ ÁÙÀÌ µÈ´Ù.

 

   Âü°í·Î ÀÌ ÆíÁýÀº ÇÏ´ÜÀÇ mainMenu¸¦ ¼±ÅÃÇØ¾ß¸¸ °¡´ÉÇÏ´Ù.

   ÀÌÁ¦ ¸Þ´º¸¦ ¸ÞÀÎ Æû°ú  ¿¬°áÀ» ÇØº¸°Ú´Ù. µðÀÚÀο¡¼­ MainFormÀ» ¼±ÅÃÇÏ°í ¼Ó¼ºÃ¢ÀÇ ¾Æ·§ºÎºÐ¿¡ Menu¿¡ mainMenu¸¦ ¼±ÅÃÇÏ¿© ¼³Á¤ÇÏ¸é ¿¬°áÀÌ µÈ´Ù.

  ÀÌÁ¦ ½ÇÇàÀ» ÇÏ¸é ´ÙÀ½°ú °°ÀÌ ¸Þ´º°¡ Ãß°¡µÈ °ÍÀ» º¼ ¼ö ÀÖ´Ù.

   ÀÌÁ¦ ¸Þ´ºÀ» ¼±ÅÃÇÏ¸é ½ÇÇàµÉ ¼ö ÀÖ´Â Method¸¦ ÀÛ¼ºÇØ º¸µµ·Ï ÇϰڴÙ.

   Method¸¦ ÀÛ¼ºÇϰíÀÚ ÇÏ´Â ¸Þ´º¿¡ ¸¶¿ì½º·Î ´õºí Ŭ¸¯À» Çϸé ÀÚµ¿À¸·Î Method°¡ »ý¼ºµÇ¾î ÆíÁýÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

   ´ÙÀ½ ±×¸²Àº »õ·Î ¸¸µé±â(&N)¸¦ ´­·¶À» ¶§ ½ÇÇàµÇ´Â Method¸¦ »ý¼ºÇÑ ¸ð¾çÀÌ´Ù. »ý¼ºµÈ MethodÀÇ À̸§À» º¸¸é  menuFileNew_ClickÀÌ´Ù. ¾Õ¿¡¼­ °­Á¶ÇÑ ¸Þ´º ¾ÆÀÌÅÛ Ãß°¡½Ã (Name)À» º¯°æÇ϶ó°í ÇÑ ÀÌÀ¯¸¦ ¿©±â¿¡¼­ ¾Ë¼ö ÀÖÀ» °ÍÀÌ´Ù.

  ¿©±â¼­´Â ÆÄÀÏ ¸Þ´º´Â ´Ü¼øÈ÷ Message ¹Ú½º¸¦ Ç¥½ÃÇϵµ·Ï ÀÛ¼ºÇϰí, Á¾·á ¹öưÀº ½ÇÁ¦ Á¾·áµÇ°Ô Çϱâ À§ÇØ base.Close();¸¦ È£ÃâÇÏ¿´´Ù.

   ±×¸®±â ¸Þ´º´Â ¼±ÅÃÇÑ ¸Þ´ºÀ» üũÇÏ¿© Ç¥½ÃÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇÒ °ÍÀÌ´Ù.

   ±×¸®±â Á¾·ù¸¦ ¼³Á¤Çϱâ À§ÇØ enumÀ» »ç¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇÑ ÈÄ MainFormÀÇ Member¿¡ DrawKind drawKind¸¦ ¼±¾ðÇÏ¿© ÃʱⰪÀ¸·Î DrawKind.LineÀ¸·Î ¼³Á¤(DrawKind drawKind = DrawKind.Line;) ÇÏÀÚ.

    public enum DrawKind

    {

        Line,

        Rectangle,

        Ellipse,

        Triangle

    }

  ±×¸®±â ¸Þ´ºÀÇ °¢ Ç׸ñÀ» ¼±ÅÃÇßÀ» ¶§ ÇØ´ç Á¾·ù°¡ ¼±Åõǵµ·Ï ¼³Á¤ÇÑ´Ù. ¿¹¸¦ µé¾î »ç°¢Çü(&R)À» ¼±ÅÃÇßÀ» ¶§ È£ÃâµÇ´Â Method¿¡ this.drawKind = DrawKind.Rectangle;À» ÀÔ·ÂÇÑ´Ù.

  Âü°í·Î ¿©±â¼­ enumÀº C++¿¡¼­µµ Á¸ÀçÇß´Ù. ¸¸¾à ÆæÀ» 0, ¼±À» 1, »ç°¢ÇüÀ» 2, ´Ù°¢ÇüÀ» 3À¸·Î ÀÔ·ÂÇÏ¿© ¼Ò½º¸¦ ÀÛ¼ºÇϸé ÇâÈÄ¿¡ ¼Ò½º¸¦ ÀÌÇØÇϱⰡ ½±Áö ¾Ê°Ô µÉ °ÍÀÌ´Ù. À̶§ »ç¿ëÇÏ´Â °ÍÀÌ C++¿¡¼­´Â enum°ú #defineÀ̾ú´Ù. C#¿¡¼­´Â #defineÀº Á¸ÀçÇÏÁö ¾Ê°í enumÀ» »ç¿ëÇÏ¿© ±¸¼ºÇؾ߸¸ ÇÑ´Ù.

   ÀÌÁ¦ ½ÇÁ¦ üũ¸¦ ÇÏ´Â ·çƾÀ» ³Ö¾î º¸µµ·Ï ÇϰڴÙ. ÀÌ ·çƾÀº ¾îµð¿¡ ³ÖÀ¸¸é °¡Àå ÁÁÀ»±î? ±×¸®±â ¸Þ´ºÀ» ¼±ÅÃÇÏ¿© Ç׸ñµéÀÌ È­¸é»ó¿¡ ³ªÅ¸³¯¶§ ÀÌ ·çƾÀ» ³Ö´Â °ÍÀÌ °¡Àå ÁÁÀ» µíÇÏ´Ù. ±×¸®±â¸¦ ¼±ÅÃÇÏ°í ¼Ó¼ºÃ¢¿¡¼­ À̺¥Æ®¸¦ ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°ÀÌ È­¸éÀÌ ¹Ù²ï´Ù.

  PopupÀ̺¥Æ®°¡ ±×¸®±â ÇÏ´ÜÀÇ ¸Þ´º°¡ È­¸é¿¡ ³ªÅ¸³¯¶§ È£ÃâµÇ´Â À̺¥Æ®À̹ǷΠPopup¿¡¼­ ´õºíŬ¸¯ÇÏ¿© ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.

            this.menuDrawLine.Checked = (this.drawKind == DrawKind.Line) ? true : false;

            this.menuDrawRectangle.Checked = (this.drawKind == DrawKind.Rectangle) ? true : false;

            this.menuDrawEllipse.Checked = (this.drawKind == DrawKind.Ellipse) ? true : false;

            this.menuDrawTriangle.Checked = (this.drawKind == DrawKind.Triangle) ? true : false;

  ÀÌÁ¦  Form¿¡¼­ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» ¼±ÅÃÇßÀ» ¶§ »ý¼ºµÇ´Â ÆË¾÷ ¸Þ´º¸¦ ÀÛ¼ºÇØ º¸ÀÚ.

  µðÀÚÀÎ ¸ðµå¿¡¼­ µµ±¸»óÀÚ¸¦ ¼±ÅÃÇÏ¿© ContextMenu¸¦ Çϳª Ãß°¡ÇÏ¿© »ý¼ºµÈ ContextMenu1À» ContextMenuDraw·Î ¼öÁ¤ÇÑ´Ù.

 Main ¸Þ´º¿Í °°Àº ¹æ¹ýÀ¸·Î ÆíÁýÇÏ¸é µÇ³ª ´ëºÎºÐ Main ¸Þ´º¿¡ ÀÖ´Â ¸Þ´ºÀ» Ãß°¡ÇÏ°Ô µÉ °ÍÀÌ´Ù. µû¶ó¼­ Main ¸Þ´º¿¡¼­ º¹»çÇÏ¿© ºÙ¿©³Ö¾î ±¸¼ºÇÑ´Ù. ºÙ¿© ³Ö±â¸¦ ÇÏ¸é ¸ðµç ¸Þ´ºÀÇ (Name)ÀÌ menuItem1°ú °°ÀÌ ÀÚµ¿À¸·Î »ý¼ºµÇ´Â À̸§À¸·Î º¯°æÀÌ µÈ´Ù. ÀÌ À̸§À» MainMenu¿Í Áߺ¹ µÇÁö ¾Ê´Â À̸§À¸·Î º¯°æÇÏ¿© ÀÔ·ÂÇØ¾ß ÇÑ´Ù. ¿©±â¼­´Â menuContextPen, menuContextLine µîÀ¸·Î ÀÔ·ÂÇß´Ù.

   ÀÌÁ¦ ¸Þ´ºÀ» ¿¬°áÇØ º¸µµ·Ï ÇϰڴÙ. C++¿¡¼­´Â ÆË¾÷ ¸Þ´ºÀÇ ID¸¦ Main ¸Þ´º¿Í °°ÀÌ ÀÔ·ÂÇϸé ÀÚµ¿À¸·Î ¿¬°áµÇ³ª C#Àº ³»ºÎ ±¸Á¶»ó ±×·¸°Ô ÇÒ ¼ö ¾ø¾î ¾î¿¼ö ¾øÀÌ MainMenu¿Í ´Ù¸¥ À̸§À¸·Î ¼³Á¤ÇÏ¿´´Ù. ±×·¯³ª È£ÃâµÇ´Â Methodµµ ´Ù¸£°Ô ÁöÁ¤ÇØ¾ß ÇÑ´Ù¸é ±×°Í¸¸Å­ ºÒÆíÇÑ °ÍÀº ¾øÀ» °ÍÀÌ´Ù. µû¶ó¼­ MainMenu¿¡¼­ ¸¸µç Method¿Í ¿¬°áÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

   

  contextMenuDarwÀÇ Ã³¸®ÇϰíÀÚ ÇÏ´Â ¸Þ´ºÀ» ¼±ÅÃÇÏ°í ¼Ó¼ºÃ¢¿¡¼­ À̺¥Æ®¸¦ ¼±ÅÃÇÏ¿© ClickÀ» ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°ÀÌ ÀÌ¹Ì ¸¸µé¾î ³õÀº Method ¸®½ºÆ®°¡ ³ª¿Â´Ù. ¿©±â¿¡¼­ ÇÊ¿äÇÑ Method¸¦ ¼±ÅÃÇÏ¸é µÈ´Ù.

  ÀÌÁ¦ ÆË¾÷ ¸Þ´º¸¦ Form°ú ¿¬°áÇØ¾ß ÇÑ´Ù. FormÀ» ¼±ÅÃÇÏ°í ¼Ó¼ºÃ¢¿¡¼­ contextMenu¸¦ ÀÛ¼ºÇÑ contextMenuDraw·Î ¼³Á¤ÇÏ¸é µÈ´Ù.

   ÀÌÁ¦ ÆË¾÷ ¸Þ´º¿¡ üũ ¹öư 󸮸¦ º¸ÀÚ. Main ¸Þ´º¿Í °°Àº °³³äÀ¸·Î ÆË¾÷ ¸Þ´º°¡ È­¸é¿¡ ³ªÅ¸³¯¶§ 󸮸¦ ÇØÁÖ¸é µÈ´Ù. contextMenuDrawÀ» ¼±ÅÃÇÏ°í ¼Ó¼ºÃ¢¿¡¼­ À̺¥Æ® ¹öưÀ» ¼±ÅÃÇÏ¿© Click À̺¥Æ®¸¦ ´õºí Ŭ¸¯ÇÏ¿© »ý¼ºµÈ Method¿¡¼­ ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇØ ÁÖ¸é µÈ´Ù.

            this.menuContextLine.Checked = (this.drawKind == DrawKind.Line) ? true : false;

            this.menuContextRectangle.Checked = (this.drawKind == DrawKind.Rectangle) ? true : false;

            this.menuContextEllipse.Checked = (this.drawKind == DrawKind.Ellipse) ? true : false;

            this.menuContextTriangle.Checked = (this.drawKind == DrawKind.Triangle) ? true : false;

 

  ÀÌÁ¦ Åø¹Ù¸¦ Ãß°¡ ÇØº¸ÀÚ. Åø¹Ù¿¡´Â ±×¸²ÀÌ µé¾î°£´Ù. ±×¸² ºÎºÐÀº C++¿¡¼­ Åø¹Ù¿ë ±×¸²À» µû·Î µÎ¾î ±¸¼ºÇÏ±â ÆíÇÏ°Ô ÇßÀ¸³ª C#¿¡¼­´Â imageList¸¦ ÀÌ¿ëÇÏ¿© Åø¹Ù, Treeµî ¾îµð¿¡µµ ºÙÀϼö ÀÖµµ·Ï ÇÏ¿´´Ù. ¿ì¼± ImageList¸¦ Ãß°¡ ÇØ º¸ÀÚ.

   Ãß°¡ÇÒ ±×¸²µéÀ» ±×¸®°Å³ª(Çϳª¾¿ µû·Î ±×·Á¾ß ÇÔ, ÀϹÝÀûÀ¸·Î 16*16 ±×¸²) ÀÎÅͳݿ¡¼­ ´Ù¿î¹Þ¾Æ ÇÁ·ÎÁ§Æ® µð·ºÅ丮¿¡ º¹»çÇØ µÐÈÄ, ImageList¸¦ Ãß°¡ÇÑ´Ù.

   µðÀÚÀÎ ¸ðµå¿¡¼­ µµ±¸»óÀÚ¸¦ ¼±ÅÃÇÏ¿© ImageList¸¦ Çϳª Ãß°¡ÇÏ¿© »ý¼ºµÈ imageList1À» imageListDraw·Î ¼öÁ¤ÇÑ´Ù.

 imageListDraw¸¦ ¼±ÅÃÇÑ ÈÄ ¼Ó¼ºÃ¢ÀÇ Images(Ä÷º¼Ç) ¿· ¹öưÀ» ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°Àº ´ëÈ­ »óÀÚ°¡ »ý¼ºµÈ´Ù.

  Ãß°¡¸¦ ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°Àº ´ëÈ­ »óÀÚ°¡ »ý¼ºµÈ´Ù.

   Åø¹Ù¿¡ ³Ö°íÀÚ ÇÏ´Â ±×¸² ¼ø¼­´ë·Î Çϳª¾¿ Ãß°¡¸¦ ÇÑ´Ù.

   ¿©±â¼­ ½ÇÇàÀ» ÇØº¸ÀÚ. ¸¸¾à ¾Õ¿¡¼­ ¼³¸íÇÑ enum DrawKind¸¦ MainForm¾Õ¿¡ ¼±¾ðÇß´Ù¸é ´Ù¿îµÉ °ÍÀÌ´Ù. ¸¸¾à ´Ù¿îÀÌ ¾ÈµÇ¸é ´ÙÇàÀÌÁö¸¸ ÇöÀç ÇÊÀÚÀÇ PC¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â Visual Studio 2003À¸·Î ÀÛ¼ºÇÏ¸é ´Ù¿îÀÌ µÈ´Ù. ÀÌÀ¯´Â Àß ¸ð¸£°ÚÀ¸³ª ÇÊÀÚ´Â ÀÌ°Í ¶§¹®¿¡ ¾öû³­ ½Ã°£À» Çãºñ Çß´Ù. ÇØ°áÀº enum DrawKind¸¦ MainForm ´ÙÀ½¿¡ ¼±¾ðÇϸé ÇØ°áÀÌ µÈ´Ù.

   µµ±¸»óÀÚ¿¡¼­ ToolBar¸¦ Çϳª Ãß°¡ÇÏ¸é ´ÙÀ½°ú °°ÀÌ Form¿¡ ºÙ´Â´Ù.

  Åø¹Ù¸¦ ¼±ÅÃÇÑ ÈÄ ¼Ó¼ºÃ¢ÀÇ (Name)À» toolBarDraw·Î ¼öÁ¤Çϰí ImageList¿¡ ¾Õ¿¡¼­ ÀÛ¼ºÇÑ imageListDraw¸¦ ¼±ÅÃÇÑ ÈÄ, Buttons(Ä÷º¼Ç) ¿· ¹öưÀ» ¼±ÅÃÇÏ¸é ´ÙÀ½°ú °°Àº ´ëÈ­ »óÀÚ°¡ »ý¼ºµÈ´Ù.

   Ãß°¡¸¦ ¼±ÅÃÇÏ¸é ´ÙÀ½ ±×¸²°ú °°ÀÌ Ãß°¡°¡ µÈ´Ù.

   ImageIndex¿¡ ¹öư¿¡ Ç¥½ÃÇÒ ±×¸²À» ¼±ÅÃÇϰí (Name)À» ¼öÁ¤(Áß¿äÇÔÀ» ´Ù½ÃÇѹø °­Á¶)ÇÏ¿© Çϳª¾¿ Ãß°¡ÇÑ´Ù. ¼Ó¼º Áß ToolTipText´Â Åø¹Ù ¹öư À§¿¡ ¸¶¿ì½º¸¦ °¡Áö°í °¡¸é »ý¼ºµÇ´Â dz¼± µµ¿ò¸»¿¡ Ç¥½ÃÇÒ ³»¿ëÀ̹ǷΠÀÌ°Í ¶ÇÇÑ ÀÔ·ÂÇØÁֱ⠹ٶõ´Ù.

  Ãß°¡ÇÑ  ¹öư¿¡ Çϳª¾¿ Method¿Í ¿¬°áÇÏ¸é µÉµíÇϳª Åø¹Ù¿¡¼­´Â ´ÜÁö ¹öưÀÌ ¼±ÅõǾúÀ» ¶§ È£ÃâµÇ´Â Method¸¦ ¸¸µé ¼ö ÀÖ°í ±× ³»ºÎ¿¡¼­ ¹öư Á¾·ù¸¦ ±¸ºÐÇÏ¿© ½ÇÇàÇØ¾ß ¸¸ ÇÑ´Ù.

   Åø¹Ù¸¦ ¼±ÅÃÇÏ¿© ¼Ó¼ºÃ¢¿¡¼­ À̺¥Æ®¸¦ ¼±ÅÃÇÑ ÈÄ ButtonClick¿¡¼­ ¸¶¿ì½º·Î µåºíŬ¸¯ÇÏ¿© »ý¼ºµÈ Method¿¡ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.

            this.drawKind = (DrawKind)e.Button.ImageIndex;

  ¿©±â¼­ ¾î¶² ¹öưÀÌ ´­·¯Á³´ÂÁö È®ÀÎ ÇÒ ¼ö ÀÖ´Â °ÍÀÌ e.Button.ImageIndexÀÌ´Ù. ù ¹øÂ° ¹öưÀÌ ´­·¯Áö¸é 0, µÎ ¹øÂ°´Â 1.... ÀϹÝÀûÀ¸·Î Á¾·ù¿¡ µû¶ó ´Ù¸¥ ±â´ÉÀ» ÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇØ¾ß Çϳª ¿©±â¼­´Â drawKind¸¸ º¯°æÇÏ¸é µÇ¹Ç·Î À§¿Í°°ÀÌ ±¸¼ºÇÏ¸é µÈ´Ù.

  ÀÌÁ¦ Åø¹ÙÀÇ ¹öưµéÁß ¼±ÅÃµÈ ±×¸®±â Á¾·ù¿¡ ¸Â´Â ¹öưÀº ´­·¯Áø ¸ð¾çÀ¸·Î ¼³Á¤ÇØ º¸ÀÚ. Åø¹Ù´Â Menu¿Í´Â ´Þ¸® °è¼ÓÇØ¼­ È­¸é¿¡ Ç¥½ÃÇÑ´Ù. µû¶ó¼­ È­¸éÀÌ »ý¼ºµÉ Ãʱ⿡ Çѹø ¼³Á¤ÇØ ÁÖ°í ¸Þ´º³ª Åø¹Ù°¡ ¼±ÅÃµÉ ¶§ ¸¶´Ù ´­·¯Áø ¸ð¾çÀ» ¹Ù²Ù¾î ÁÖ¾î¾ß ÇÑ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°Àº ÇÔ¼ö¸¦ ¸¸µé¾î this.drawKind¿¡ µû¶ó ¹öưÀÌ ´­·¯Áö°Ô Çϰí ÇÊ¿äÇÑ °÷¿¡¼­ ±× ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ±¸¼ºÇÏ¸é µÈ´Ù.

        private void toolBarButtonStatus()

        {

            this.toolBarLine.Pushed = (this.drawKind == DrawKind.Line) ? true : false;

            this.toolBarRectangle.Pushed = (this.drawKind == DrawKind.Rectangle) ? true : false;

            this.toolBarEllipse.Pushed = (this.drawKind == DrawKind.Ellipse) ? true : false;

            this.toolBarTriangle.Pushed = (this.drawKind == DrawKind.Triangle) ? true : false;

        }

   ÀÌÁ¦ È­¸éÀÌ »ý¼ºµÉ Ãʱ⿡ È£ÃâµÇ´Â À̺¥Æ®¸¦ ¾Ë¾Æ¾ß Çϴµ¥, ±×°ÍÀº LoadÀÌ´Ù.

  Load¸¦ ´õºí Ŭ¸¯ÇÏ¿© »ý¼ºµÈ Method¿¡¼­ toolBarButtonStatus()¸¦ È£ÃâÇϰí, ¸Þ´º°¡ ¼±ÅÃµÉ ¶§ ¸¶´Ù ½ÇÇàµÇ´Â Method¿Í Åø¹Ù ¹öưÀ» ¼±ÅÃÇÒ ¶§ ½ÇÇàµÇ´Â Method¿¡µµ toolBarButtonStatus()À» È£ÃâÇÏ¸é µÈ´Ù.

  ÀÌÁ¦ ¿©±â¼­ ¼³¸íÇÒ ³»¿ëÀº ¸ðµÎ ³¡³µ´Ù. ºÎ°¡ÀûÀ¸·Î ¸ð¾çÀÌ ÁÁÁö ¾ÊÀ¸´Ï Å©±â(Size)¸¦ Àû´çÈ÷ Ű¿ì°í, ¹è°æ»ö(BackColor)À» Window·Î º¯°æÇÏÀÚ.

   ÀÌÁ¦ ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°ÀÌ È­¸é¿¡ ³ªÅ¸³­´Ù.

 ÀÌÁ¦ Source¸¦ Çѹø º¸ÀÚ. ¹¹ ±×¸® ±æÁö ¾Ê´Ù. ±×·¯³ª Windows Form µðÀÚÀ̳ʿ¡¼­ »ý¼ºÇÑ ÄÚµå¶ó´Â ºÎºÐÀ» ÆîÃÄ º¸¸é ¸¹Àº ¾çÀÇ Source°¡ µé¾î ÀÖ´Â °ÍÀ» ¾Ë¼ö ÀÖ´Ù. À̺κÐÀº µðÀÚÀ̳ʿ¡¼­ ÀÛ¼ºÇÏ´Â ÄÚµå·Î, ÆîÃÄ º¸¸é À§ÂÊ¿¡ ÀûÇô Àִ´ë·Î ¼öµ¿À¸·Î ¼öÁ¤ÇÏÁö ¸»±â ¹Ù¶õ´Ù. Source³»¿ëÀº ¾Õ¿¡¼­ºÎÅÍ ¼ø¼­´ë·Î µû¶ó Çß´Ù¸é ±×¸® ¾î·ÆÁö ¾ÊÀ¸¸®¶ó ¿¹»óµÈ´Ù.

  Visual Studio 2003¿¡¼­ÀÇ C#Àº ¹®¹ýÀûÀ¸·Î ÇϳªÀÇ Å¬·¡½º¸¦ ¿©·¯ÆÄÀÏ·Î ³ª´©¾î¼­ ±¸¼ºÇÒ ¼ö ¾ø´Ù. µû¶ó¼­ Æí¹ýÀ¸·Î Ãʱ⿡ Á¢ÇôÁ®¼­ ´«¿¡ À߾ȶ絵·Ï Çß´Ù.

  ±×·¯³ª Visual Studio 2005¿¡¼­ÀÇ C#Àº µÎ °³ÀÇ ÆÄÀÏ·Î ³ª´©¾î ±¸¼ºÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿©, µðÀÚÀÎ ÄÚµå´Â µû·Î °ü¸®ÇÔÀ¸·Î¼­ ¼öµ¿ÆíÁýÀ» ÇÏÁö ¾Êµµ·Ï À¯µµÇϰí ÀÖ´Ù°í ÇÑ´Ù.

 

´Ù¿î·Îµå