Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: Visual C++ .NET 2005 Bitmap Problem  (Read 2979 times)

0 Members and 1 Guest are viewing this topic.

mdavidjohnson

    Topic Starter


    Starter

    Visual C++ .NET 2005 Bitmap Problem
    « on: September 16, 2010, 12:02:46 PM »
    I'm trying to learn how to modify Bitmaps programatically.

    As a first attempt, I'm trying to simply create a blank bitmap, programatically change it to all red, and display it in a pictureBox.

    The following code builds without error and, under "Start Without Debugging" runs without error except the blank pictureBox remains blank - no red bitmap is displayed in it. Any suggestions?

          private: System::Void button1_Click(System::Object^  sender,
          System::EventArgs^  e)
       {
          Bitmap^ TempBitmap;
          TempBitmap = gcnew Bitmap(33,33);
          Color TempColor;
          unsigned char cArg;
          unsigned char cRed;
          unsigned char cGreen;
          unsigned char cBlue;
          for (int i=0; i<33; i++)
          {
             for (int j=0; j<33; j++)
             {
                cArg = 255;
                cRed = 255;
                cGreen = 0;
                cBlue = 0;
                TempColor.FromArgb(cArg,cRed,cGreen,cBlue);
                TempBitmap->SetPixel(i,j,TempColor);
             }
          }
          pictureBox1->Image = TempBitmap;
          label4->Text = "DONE";
       }

    Yes, I know it's inefficient to put the color assignments inside the loop because they never change. But, since that's where I'll eventually put color modifications coding, they make good placeholders. :)

    M. David Johnson
    [email protected]

    mdavidjohnson

      Topic Starter


      Starter

      Re: Visual C++ .NET 2005 Bitmap Problem
      « Reply #1 on: September 17, 2010, 09:34:58 PM »
      Thanks to Viorel at social_dot_msdn_dot_microsoft_dot_com, the solution is to replace the TempColor assignment line with:

      TempColor = Color::FromArgb(cArg,cRed,cGreen,cBlue);

      I’ve tested this and it works.

      M. David Johnson
      [email protected]