How to scroll the contents of a Form in code.

  • Thread starter Thread starter M. Said
  • Start date Start date
M

M. Said

Hi, I am trying to write a function that will scroll the "image" content of
a form upwards. My Questions:

1) How do I make a bitmap of the Form image.
2) How do I copy a "region" of that bitmap back to the form (that should
give the effect that the form scrolled up);

Thanks in advance.
 
Hi
You can put an image control on your form ... here is a way to get the form
image
You need to use a dll function so use dll import this way
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern bool BitBlt(
IntPtr hdcDest, // handle to destination DC
int nXDest, // x-coord of destination upper-left corner
int nYDest, // y-coord of destination upper-left corner
int nWidth, // width of destination rectangle
int nHeight, // height of destination rectangle
IntPtr hdcSrc, // handle to source DC
int nXSrc, // x-coordinate of source upper-left corner
int nYSrc, // y-coordinate of source upper-left corner
System.Int32 dwRop // raster operation code
);
/
Then you can get the form image this way
Graphics g1 = this.CreateGraphics();
Image MyImage = new Bitmap(this.ClientRectangle.Width,
this.ClientRectangle.Height, g1);
Graphics g2 = Graphics.FromImage(MyImage);
IntPtr dc1 = g1.GetHdc();
IntPtr dc2 = g2.GetHdc();
BitBlt(dc2, 0, 0, this.ClientRectangle.Width,
this.ClientRectangle.Height, dc1, 0, 0, 13369376);
g1.ReleaseHdc(dc1);
g2.ReleaseHdc(dc2);
MyImage.Save(@"c:\Captured.jpg",
System.Drawing.Imaging.ImageFormat.Jpeg);
MessageBox.Show("Saved");
Then you can load this image the control on your form

Mohamed Mahfouz
MEA Developer Support Center
ITworx on behalf of Microsoft EMEA GTSC
 
Thanks for you reply.

But what I need to do is not save the bitmap. I want to copy the bottom
portion of it upwards (simulate that the form or image scrolled up). So,
after copying the image of the component - into memory - I need to copy it
back - from memory - onto the form selecting the bottom part of the image.

Can you help me figure out how to copy part of the content of "MyImage"
object back onto the image control.

Regards,
 
Back
Top