19-5-2.¹é±×¶ó¿îµå ÀÛ¾÷

ŸÀ̸Ӵ ÁÖ±âÀûÀÎ ÀÛ¾÷À» ÇÒ ¶§ ÁÖ·Î »ç¿ëÇÏÁö¸¸ ÀÌ¿Ü¿¡µµ È°¿ëÇÒ °÷ÀÌ ¸¹´Ù. ÇÁ·Î±×·¥ÀÌ ¹é±×¶ó¿îµå¿¡¼­ Æ´Æ´ÀÌ ÇØ¾ß ÇÒ ÀÛ¾÷ÀÌ ÀÖÀ» ¶§µµ À¯¿ëÇÏ´Ù. ½Ã°£ÀÌ ¿À·¡ °É¸®´Â ÀÛ¾÷À» ´Ü¼û¿¡ ÇØ ¹ö¸®¸é ±×µ¿¾È »ç¿ëÀÚ´Â ¾Æ¹«°Íµµ ÇÏÁö ¸øÇÏ°í ´ë±âÇØ¾ß ÇÏÁö¸¸ ÀÛ¾÷À» Àß°Ô ÂÉ°³ À̺¥Æ®¸¦ ¹ÞÀ» ¶§¸¶´Ù ³ª´©¾î ÇÏ¸é ´ë±âÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ¹°·Ð ÀüüÀûÀ¸·Î ½Ã°£ÀÌ ´õ °É¸®°ÚÁö¸¸ ¹ÝÀÀ¼ºÀÌ ¶³¾îÁö´Â °Íº¸´Ù´Â ³´´Ù.

¹é±×¶ó¿îµå ÀÛ¾÷À» Çϴµ¥´Â ½º·¹µå°¡ Á¦°ÝÀÌÁö¸¸ ŸÀ̸Ӱ¡ ´õ °£ÆíÇÏ´Ù. ŸÀ̸Ӵ ½Ì±Û ½º·¹µå ȯ°æ¿¡¼­ µ¹¾Æ°¡¸é¼­µµ ´Ù¸¥ À̺¥Æ® »çÀÌ¿¡ ÁÖ±âÀûÀ¸·Î ³¢¾îµé¾î ¿øÇÏ´Â ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. ¾Ö´Ï¸ÞÀÌ¼Ç Àç»ýÀ̳ª ÀÚµ¿ ÀúÀåÀº ±ä±ÞÇÏÁö ¾ÊÀ¸¸é¼­ °¡²û¾¿¸¸ ½Å°æ¾²¸é µÇ¹Ç·Î ½º·¹µå¾¿À̳ª µ¿¿øÇÒ ÇÊ¿ä ¾ø´Ù.

¾Õ ¿¹Á¦¿¡¼­´Â ŸÀ̸Ӹ¦ Äڵ忡¼­ Á÷Á¢ »ý¼ºÇߴµ¥ À̹ø¿¡´Â µðÀÚÀ̳ʷΠŸÀ̸Ӹ¦ Æû¿¡ ¹èÄ¡ÇØ º¸ÀÚ. ¼Ó¼ºÃ¢À» ÅëÇØ ÇÁ·ÎÆÛƼ¸¦ º¯°æÇϰųª À̺¥Æ® Çڵ鷯¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù. Background ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ°í ÆûÀÇ Å©±â¸¦ Àû´çÈ÷ Å°¿î´Ù. ±×¸®°í µµ±¸»óÀÚÀÇ ±¸¼º ¿ä¼Ò ÆäÀÌÁö¿¡¼­ Timer ÄÄÆ÷³ÍÆ®¸¦ Ŭ¸¯ÇÏ¿© Æû¿¡ ¹èÄ¡ÇÑ´Ù. Æû µðÀÚÀÌ³Ê ¾Æ·¡ÂÊÀÇ Æ®·¹ÀÌ¿¡ timer1 ÄÄÆ÷³ÍÆ®°¡ ¹èÄ¡µÈ´Ù.

Æ®·¹ÀÌ ¿µ¿ª¿¡´Â À̹ÌÁö ¸®½ºÆ®³ª ŸÀ̸Óó·³ ´«¿¡ º¸ÀÌÁö ¾Ê´Â ÄÄÆ÷³ÍÆ®°¡ ¹èÄ¡µÈ´Ù. ºñ°¡½ÃÀûÀÎ ÄÄÆ÷³ÍÆ®´Â Á¸Àç ÀÚü°¡ Áß¿äÇÒ »Ó À§Ä¡³ª Å©±â´Â ÀÇ¹Ì ¾ø¾î Æû¿¡ ¹èÄ¡µÇÁö ¾Ê°í Æ®·¹ÀÌ ¿µ¿ª¿¡ ¹èÄ¡µÈ´Ù. ŸÀ̸Ӵ ÀÏÁ¤ÇÑ ÁÖ±â·Î À̺¥Æ®¸¦ ¹ß»ý½ÃÅ°´Â ÄÄÆ÷³ÍÆ®ÀÌÁö »ç¿ëÀÚ°¡ Á÷Á¢ »ç¿ëÇÏ´Â ÄÁÆ®·ÑÀÌ ¾Æ´Ï´Ù.

Æ®·¹ÀÌ ¿µ¿ª¿¡ ÀÖ°Ç Æû¿¡ ÀÖ°Ç ÇÁ·Î±×·¡¹ÖÇÏ´Â ¹æ¹ýÀº °°´Ù. Æ®·¹ÀÌ ¿µ¿ª¿¡¼­ timer1 ÄÄÆ÷³ÍÆ®¸¦ ¼±ÅÃÇÏ¸é ¼Ó¼ºÃ¢¿¡ ŸÀ̸ÓÀÇ ÇÁ·ÎÆÛƼ¿Í À̺¥Æ®°¡ ³ªÅ¸³­´Ù. ¿©±â¼­ IntervalÀ» 50À¸·Î ¹Ù²Ù°í Enabled¸¦ True·Î º¯°æÇÏ¸é »ý¼º Á÷ÈÄ ¹Ù·Î µ¿ÀÛÇÑ´Ù. À̺¥Æ® ÆäÀÌÁö¿¡¼­ Tick À̺¥Æ®¸¦ ´õºíŬ¸¯Çϸé timer1_Tick À̺¥Æ® Çڵ鷯±îÁöµµ ÀÚµ¿À¸·Î »ý¼ºµÈ´Ù.

 

µðÀÚÀ̳ʴ InitializeComponent ¸Þ¼­µå¿¡ ŸÀ̸Ӹ¦ »ý¼ºÇÏ°í ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÏ°í À̺¥Æ® Çڵ鷯¸¦ ¼³Ä¡ÇÏ´Â Äڵ带 ÀÛ¼ºÇÑ´Ù.

 

private void InitializeComponent() {

     this.timer1 = new System.Windows.Forms.Timer(this.components);

     this.timer1.Enabled = true;

     this.timer1.Interval = 50;

     this.timer1.Tick += new System.EventHandler(this.timer1_Tick);

     ....

 

°á±¹ ¾Õ ½Ç½ÀÀÇ Load À̺¥Æ®¿¡¼­ ¿ì¸®°¡ Á÷Á¢ ÀÛ¼ºÇß´ø Äڵ带 µðÀÚÀ̳ʰ¡ ´ë½Å ÇÏ´Â °Í »ÓÀÌ´Ù. ³²Àº ÀÏÀº À̺¥Æ® Çڵ鷯ÀÇ ³»¿ëÀ» ä¿ì´Â °ÍÀÌ´Ù. ÆûÀÇ MouseDown¿¡ ´ëÇÑ Çڵ鷯µµ ÀÛ¼ºÇÏ¿© ¾Õ¿¡¼­ ¸¸µé¾ú´ø Ÿ¿ø ±×¸®±â Äڵ嵵 °°ÀÌ ÀÛ¼ºÇØ º¸ÀÚ.

 

Background

using System; ~ using System.Windows.Forms;

 

namespace Background {

     public partial class Form1 : Form {

          Random R;

 

          public Form1() {

              InitializeComponent();

              R = new Random();

          }

 

          private void timer1_Tick(object sender, EventArgs e) {

              Graphics G = CreateGraphics();

              G.DrawRectangle(Pens.Blue, R.Next(400), R.Next(300), 10, 10);

              G.Dispose();

          }

 

          private void Form1_MouseDown(object sender, MouseEventArgs e) {

              if (e.Button == MouseButtons.Left) {

                   Graphics G = CreateGraphics();

                   G.DrawEllipse(Pens.Red, e.X, e.Y, 10, 10);

                   G.Dispose();

              }

          }

     }

}

 

ŸÀÌ¸Ó À̺¥Æ® Çڵ鷯¿¡¼­´Â ÃÊ´ç 20¹ø¾¿ ³­¼ö À§Ä¡¿¡ ÆĶõ»ö »ç°¢ÇüÀ» ±×¸®°í ¸¶¿ì½º·Î Ŭ¸¯ÇÑ À§Ä¡¿¡´Â »¡°£»ö Ÿ¿øÀ» ±×¸°´Ù.

¸¶¿ì½º ÀÔ·Â À̺¥Æ®¿¡¼­ Ÿ¿øÀ» ±×¸®°í ŸÀ̸Ӵ ¹é±×¶ó¿îµå¿¡¼­ ÁÖ±âÀûÀ¸·Î »ç°¢ÇüÀ» ±×¸°´Ù. ÇÑ°¡ÇÒ ¶§ ŸÀ̸Ӱ¡ ³¢¾îµå´Â ½ÄÀ̾ ÀÌ ÀÛ¾÷ ¶§¹®¿¡ ´Ù¸¥ À̺¥Æ®°¡ ¹æÇعÞÁö´Â ¾Ê´Â´Ù. ŸÀ̸Ӱ¡ µ¹°í ÀÖ´Â Áß¿¡µµ ÆûÀ» À̵¿Çϰųª Å©±â¸¦ º¯°æÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ ÀÛ¾÷À» ÇÏ´Â Áß¿¡ Æ´Æ´ÀÌ ÇØ¾ß ÇÒ ÀÛ¾÷¿¡ ŸÀ̸Ӱ¡ ÀûÇÕÇÏ´Ù.