<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Visual_C%2B%2B_.NET%2F2D%2FBuffer</id>
		<title>Visual C++ .NET/2D/Buffer - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Visual_C%2B%2B_.NET%2F2D%2FBuffer"/>
		<link rel="alternate" type="text/html" href="http://www.nfex.ru/index.php?title=Visual_C%2B%2B_.NET/2D/Buffer&amp;action=history"/>
		<updated>2026-04-15T00:44:27Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.nfex.ru/index.php?title=Visual_C%2B%2B_.NET/2D/Buffer&amp;diff=3764&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.nfex.ru/index.php?title=Visual_C%2B%2B_.NET/2D/Buffer&amp;diff=3764&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.nfex.ru/index.php?title=Visual_C%2B%2B_.NET/2D/Buffer&amp;diff=3765&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.nfex.ru/index.php?title=Visual_C%2B%2B_.NET/2D/Buffer&amp;diff=3765&amp;oldid=prev"/>
				<updated>2010-05-26T12:06:03Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Double Buffering==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
[STAThreadAttribute]&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
  Application::Run(gcnew Form1());&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
  using namespace System;&lt;br /&gt;
  using namespace System::ComponentModel;&lt;br /&gt;
  using namespace System::Collections;&lt;br /&gt;
  using namespace System::Windows::Forms;&lt;br /&gt;
  using namespace System::Data;&lt;br /&gt;
  using namespace System::Drawing;&lt;br /&gt;
  public ref class Form1 : public System::Windows::Forms::Form&lt;br /&gt;
  {&lt;br /&gt;
  public:&lt;br /&gt;
    Form1(void)&lt;br /&gt;
    {&lt;br /&gt;
      InitializeComponent();&lt;br /&gt;
            this-&amp;gt;SetStyle(ControlStyles::Opaque, true);&lt;br /&gt;
            dbBitmap = nullptr;&lt;br /&gt;
            dbGraphics = nullptr;&lt;br /&gt;
            X = -250;  // Preset to be just left of window&lt;br /&gt;
            Form1_Resize(nullptr, EventArgs::Empty);&lt;br /&gt;
    }&lt;br /&gt;
        System::Windows::Forms::Timer^  timer1;&lt;br /&gt;
    Bitmap^   dbBitmap;&lt;br /&gt;
        Graphics^ dbGraphics;&lt;br /&gt;
        int X;        // Actual x coordinate of Happy face&lt;br /&gt;
    void InitializeComponent(void)&lt;br /&gt;
    {&lt;br /&gt;
            this-&amp;gt;timer1 = (gcnew System::Windows::Forms::Timer());&lt;br /&gt;
            this-&amp;gt;SuspendLayout();&lt;br /&gt;
            // &lt;br /&gt;
            // timer1&lt;br /&gt;
            // &lt;br /&gt;
            this-&amp;gt;timer1-&amp;gt;Enabled = true;&lt;br /&gt;
            this-&amp;gt;timer1-&amp;gt;Interval = 10;&lt;br /&gt;
            this-&amp;gt;timer1-&amp;gt;Tick += &lt;br /&gt;
                gcnew System::EventHandler(this, &amp;amp;Form1::timer1_Tick);&lt;br /&gt;
            // &lt;br /&gt;
            // Form1&lt;br /&gt;
            // &lt;br /&gt;
            this-&amp;gt;AutoScaleDimensions = System::Drawing::SizeF(6, 13);&lt;br /&gt;
            this-&amp;gt;AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;&lt;br /&gt;
            this-&amp;gt;ClientSize = System::Drawing::Size(500, 300);&lt;br /&gt;
            this-&amp;gt;Name = L&amp;quot;Form1&amp;quot;;&lt;br /&gt;
            this-&amp;gt;Text = L&amp;quot;Sliding Happy Face&amp;quot;;&lt;br /&gt;
            this-&amp;gt;Paint += &lt;br /&gt;
                gcnew System::Windows::Forms::PaintEventHandler(this, &lt;br /&gt;
                                                         &amp;amp;Form1::Form1_Paint);&lt;br /&gt;
            this-&amp;gt;Resize += &lt;br /&gt;
                gcnew System::EventHandler(this, &amp;amp;Form1::Form1_Resize);&lt;br /&gt;
            this-&amp;gt;ResumeLayout(false);&lt;br /&gt;
        }&lt;br /&gt;
        System::Void Form1_Paint(System::Object^ sender, &lt;br /&gt;
                                 System::Windows::Forms::PaintEventArgs^ e)&lt;br /&gt;
        {&lt;br /&gt;
             // Move image at end of line start from beginning&lt;br /&gt;
            if (X &amp;lt; ClientRectangle.Width)&lt;br /&gt;
            {&lt;br /&gt;
                X ++;&lt;br /&gt;
                dbGraphics-&amp;gt;TranslateTransform(1.0, 0.0);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                X = -250;&lt;br /&gt;
                dbGraphics-&amp;gt;TranslateTransform(&lt;br /&gt;
                    (float)-(ClientRectangle.Width+250), 0.0);&lt;br /&gt;
            }&lt;br /&gt;
            // Clear background&lt;br /&gt;
            dbGraphics-&amp;gt;Clear(Color::White);&lt;br /&gt;
&lt;br /&gt;
            // redraw image from scratch&lt;br /&gt;
            Pen^ b4pen = gcnew Pen(Color::Black, 4);&lt;br /&gt;
            Drawing::Rectangle Head  = Drawing::Rectangle(0, 0, 250, 250);&lt;br /&gt;
            dbGraphics-&amp;gt;FillEllipse(Brushes::Yellow, Head);&lt;br /&gt;
            dbGraphics-&amp;gt;DrawEllipse(b4pen, Head);&lt;br /&gt;
            Drawing::Rectangle Mouth = Drawing::Rectangle(75, 150, 100, 50);&lt;br /&gt;
            dbGraphics-&amp;gt;FillPie(Brushes::White, Mouth,0,180);&lt;br /&gt;
            dbGraphics-&amp;gt;DrawPie(b4pen, Mouth, 0, 180);&lt;br /&gt;
            Drawing::Rectangle LEye  = Drawing::Rectangle(75, 75, 25, 25);&lt;br /&gt;
            dbGraphics-&amp;gt;FillEllipse(Brushes::White, LEye);&lt;br /&gt;
            dbGraphics-&amp;gt;DrawEllipse(b4pen, LEye);&lt;br /&gt;
            Drawing::Rectangle REye  = Drawing::Rectangle(150, 75, 25, 25);&lt;br /&gt;
            dbGraphics-&amp;gt;FillEllipse(Brushes::White, REye);&lt;br /&gt;
            dbGraphics-&amp;gt;DrawEllipse(b4pen, REye);&lt;br /&gt;
            // Make the buffer visible&lt;br /&gt;
            e-&amp;gt;Graphics-&amp;gt;DrawImageUnscaled(dbBitmap, 0, 0);&lt;br /&gt;
            delete b4pen;&lt;br /&gt;
        }&lt;br /&gt;
        System::Void Form1_Resize(System::Object^ sender, System::EventArgs^ e)&lt;br /&gt;
        {&lt;br /&gt;
             // Get rid of old stuff&lt;br /&gt;
            if (dbGraphics != nullptr)&lt;br /&gt;
            {&lt;br /&gt;
                delete dbGraphics;&lt;br /&gt;
            }&lt;br /&gt;
            if (dbBitmap != nullptr)&lt;br /&gt;
            {&lt;br /&gt;
                delete dbBitmap;&lt;br /&gt;
            }&lt;br /&gt;
            if (ClientRectangle.Width &amp;gt; 0 &amp;amp;&amp;amp; ClientRectangle.Height &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                // Create a bitmap&lt;br /&gt;
                dbBitmap = gcnew Bitmap(ClientRectangle.Width,&lt;br /&gt;
                                        ClientRectangle.Height);&lt;br /&gt;
                // Grab its Graphics&lt;br /&gt;
                dbGraphics = Graphics::FromImage(dbBitmap);&lt;br /&gt;
                // Set up initial translation after resize (also at start)&lt;br /&gt;
                dbGraphics-&amp;gt;TranslateTransform((float)X, 25.0);&lt;br /&gt;
            }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
        System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e)&lt;br /&gt;
        {&lt;br /&gt;
            // Move the image&lt;br /&gt;
            Invalidate();&lt;br /&gt;
       }&lt;br /&gt;
  };&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Single Buffering==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
  using namespace System;&lt;br /&gt;
  using namespace System::ComponentModel;&lt;br /&gt;
  using namespace System::Collections;&lt;br /&gt;
  using namespace System::Windows::Forms;&lt;br /&gt;
  using namespace System::Data;&lt;br /&gt;
  using namespace System::Drawing;&lt;br /&gt;
  public ref class Form1 : public System::Windows::Forms::Form&lt;br /&gt;
  {&lt;br /&gt;
  public:&lt;br /&gt;
    Form1(void)&lt;br /&gt;
    {&lt;br /&gt;
      InitializeComponent();&lt;br /&gt;
            X = -250;  // Preset to be just left of window&lt;br /&gt;
    }&lt;br /&gt;
        System::Windows::Forms::Timer^  timer1;&lt;br /&gt;
        float X;        // Actual x coordinate of Happy face&lt;br /&gt;
    void InitializeComponent(void)&lt;br /&gt;
    {&lt;br /&gt;
            this-&amp;gt;timer1 = &lt;br /&gt;
                (gcnew System::Windows::Forms::Timer());&lt;br /&gt;
            this-&amp;gt;SuspendLayout();&lt;br /&gt;
            // &lt;br /&gt;
            // timer1&lt;br /&gt;
            // &lt;br /&gt;
            this-&amp;gt;timer1-&amp;gt;Enabled = true;&lt;br /&gt;
            this-&amp;gt;timer1-&amp;gt;Interval = 10;&lt;br /&gt;
            this-&amp;gt;timer1-&amp;gt;Tick += &lt;br /&gt;
                gcnew System::EventHandler(this, &amp;amp;Form1::timer1_Tick);&lt;br /&gt;
            // &lt;br /&gt;
            // Form1&lt;br /&gt;
            // &lt;br /&gt;
            this-&amp;gt;AutoScaleDimensions = System::Drawing::SizeF(6, 13);&lt;br /&gt;
            this-&amp;gt;AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;&lt;br /&gt;
            this-&amp;gt;ClientSize = System::Drawing::Size(500, 300);&lt;br /&gt;
            this-&amp;gt;Name = L&amp;quot;Form1&amp;quot;;&lt;br /&gt;
            this-&amp;gt;Text = L&amp;quot;Form1&amp;quot;;&lt;br /&gt;
            this-&amp;gt;Paint += &lt;br /&gt;
                gcnew System::Windows::Forms::PaintEventHandler(this, &lt;br /&gt;
                                                         &amp;amp;Form1::Form1_Paint);&lt;br /&gt;
            this-&amp;gt;ResumeLayout(false);&lt;br /&gt;
        }&lt;br /&gt;
        System::Void Form1_Paint(System::Object^ sender, &lt;br /&gt;
                                 System::Windows::Forms::PaintEventArgs^ e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics^ g = e-&amp;gt;Graphics;&lt;br /&gt;
            // Move image at end of line start from beginning&lt;br /&gt;
            if (X &amp;lt; ClientRectangle.Width)&lt;br /&gt;
                X += 1.0;&lt;br /&gt;
            else&lt;br /&gt;
                X = -250.0;&lt;br /&gt;
            g-&amp;gt;TranslateTransform(X, 25.0);&lt;br /&gt;
            // redraw images from scratch&lt;br /&gt;
            Pen^ b4pen = gcnew Pen(Color::Black, 4);&lt;br /&gt;
&lt;br /&gt;
            Drawing::Rectangle Head  = Drawing::Rectangle(0, 0, 250, 250);&lt;br /&gt;
            g-&amp;gt;FillEllipse(Brushes::Yellow, Head);&lt;br /&gt;
            g-&amp;gt;DrawEllipse(b4pen, Head);&lt;br /&gt;
            Drawing::Rectangle Mouth = Drawing::Rectangle(75, 150, 100, 50);&lt;br /&gt;
            g-&amp;gt;FillPie(Brushes::White, Mouth,0,180);&lt;br /&gt;
            g-&amp;gt;DrawPie(b4pen, Mouth, 0, 180);&lt;br /&gt;
            Drawing::Rectangle LEye  = Drawing::Rectangle(75, 75, 25, 25);&lt;br /&gt;
            g-&amp;gt;FillEllipse(Brushes::White, LEye);&lt;br /&gt;
            g-&amp;gt;DrawEllipse(b4pen, LEye);&lt;br /&gt;
            Drawing::Rectangle REye  = Drawing::Rectangle(150, 75, 25, 25);&lt;br /&gt;
            g-&amp;gt;FillEllipse(Brushes::White, REye);&lt;br /&gt;
            g-&amp;gt;DrawEllipse(b4pen, REye);&lt;br /&gt;
            delete b4pen;&lt;br /&gt;
        }&lt;br /&gt;
        System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e)&lt;br /&gt;
        {&lt;br /&gt;
            // Move the image&lt;br /&gt;
            Invalidate();&lt;br /&gt;
       }&lt;br /&gt;
  };&lt;br /&gt;
[STAThreadAttribute]&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
  Application::Run(gcnew Form1());&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>