View Full Version : سوال: مشكل با printwindow درapi
mahboube
یک شنبه 31 مرداد 1389, 15:03 عصر
سلام دوستان
من مي خوام از تابع printwindow استفاده كنم.
IntPtr hwnd = textBox1.Handle;
Bitmap bm = newBitmap(pictureBox1.Size.Width, pictureBox1.Size.Height);
if (bm != null)
{
//MessageBox.Show("bm != null");
using (Graphics g = Graphics.FromImage(bm))
{
if (g == null) returnnull;
System.IntPtr bmDC = g.GetHdc();
bool ok = PrintWindow(hwnd, bmDC, 0); // RETURNS FALSE-- WHY?????
MessageBox.Show(ok.ToString());
g.ReleaseHdc(bmDC);
}
}
return bm;
و خروجيشو تو يه picture box نشون بدم ولي كد بالا جواب نمي ده.فكر مي كنم به خاطر hdc ش باشه.كد api به vb6 درسته ولي تو C#اجرا نميشه.
مشكلش چيه؟
ممنون.
mahboube
یک شنبه 31 مرداد 1389, 16:11 عصر
آقا يكي به من بگه از اين hdc ها چطوري بايد تو c# استفاده كنم؟؟؟
تو توابع api تو vb6 دوتا handle داريم:
hwnd كه معادل handle هست و HDC كه نمي تونم اجراش كنم.
براي تصاوير استفاده مي شه كه فقط OBJECT ايي كه از نوع GRAPHIC ساخته شده باشن خصوصيتش (GETHDC)رو دارن.ولي اجرا نميشه.لطفا كمك!
mahboube
یک شنبه 31 مرداد 1389, 16:30 عصر
آقا يكي به من بگه از اين hdc ها چطوري بايد تو C# استفاده كنم؟؟؟
تو توابع api تو vb6 دوتا handle داريم:
hwnd كه معادل handle هست و HDC كه نمي تونم اجراش كنم.
براي تصاوير استفاده مي شه كه فقط OBJECT ايي كه از نوع GRAPHIC ساخته شده باشن خصوصيتش (GETHDC)رو دارن.ولي اجرا نميشه.لطفا كمك!
خودم يه تابع api پيداكردم:
[DllImport("user32.dll", EntryPoint = "GetDC")]
public static extern IntPtr GetDC(IntPtr ptr);
كه hdc رو برمي گردونه ولي بازم برنامه اجرا نميشه.
هركي مي دونه چرا بهلپه لطفا!
mahboube
یک شنبه 31 مرداد 1389, 17:22 عصر
آقا يعني هيشكي اينجا اين مشكلو نداشته؟؟؟بابا من بايد از textbox ام عكس بگيرم.كمك لطفا
mahboube
دوشنبه 01 شهریور 1389, 10:22 صبح
آقا يعني هيشكي اينجا اين مشكلو نداشته؟؟؟بابا من بايد از textbox ام عكس بگيرم.كمك لطفا
mahboube
دوشنبه 01 شهریور 1389, 11:16 صبح
آقا يعني هيشكي اينجا اين مشكلو نداشته؟؟؟بابا من بايد از textbox ام عكس بگيرم.كمك لطفا
مشكل من حل شد.
از يك تابع ديگه استفاده كردم. bitblt از كتابخونه gdi32.
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
);
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.