¸Þ´º ¹× Åø¹Ù Áö¿ø
ÀÌÁ¦ ¸Þ´º¿Í Åø¹Ù¸¦ Áö¿øÇغ¸ÀÚ. ¸Þ´º¿Í Åø¹Ù´Â 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#Àº µÎ °³ÀÇ ÆÄÀÏ·Î ³ª´©¾î ±¸¼ºÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿©, µðÀÚÀÎ ÄÚµå´Â µû·Î °ü¸®ÇÔÀ¸·Î¼ ¼öµ¿ÆíÁýÀ» ÇÏÁö ¾Êµµ·Ï À¯µµÇϰí ÀÖ´Ù°í ÇÑ´Ù.
´Ù¿î·Îµå