help帮忙看看。为什么用bitblt拷贝后是黑的!!

shanying_0 2008-11-01 08:53:58
bitmap = new Bitmap(@"C:\Documents and Settings\Administrator\My Documents\My Pictures\222.bmp");
Graphics gbit = Graphics.FromImage(bitmap);

Bitmap bx = new Bitmap(800, 600, gbit);
Graphics gbx = Graphics.FromImage(bx);
IntPtr dcSrc = gbx.GetHdc();

Graphics g = Graphics.FromHwnd(this.Handle);
IntPtr dcDest = g.GetHdc();
BitBlt(dcDest, 0, 0, 800, 600, dcSrc, 0, 0, SRCCOPY);
g.ReleaseHdc(dcDest);
gbx.ReleaseHdc(dcSrc);


为什么我这个代码执行后。拷贝到窗体表面是黑的!!!
...全文
134 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
秦江故人 2011-12-05
  • 打赏
  • 举报
回复
不共享,以后谁帮你呀!!! 欠
秦江故人 2011-12-05
  • 打赏
  • 举报
回复
LZ 真欠!
urtb124 2010-11-26
  • 打赏
  • 举报
回复
...我也遇到了,不知道怎么解决。
zfreeze 2009-07-31
  • 打赏
  • 举报
回复
...你解决了也说一下解决的方法嘛~~
shanying_0 2008-11-02
  • 打赏
  • 举报
回复
问题已经解决。谢谢大家的帮助!!
shanying_0 2008-11-01
  • 打赏
  • 举报
回复
这个也是理由么?!!!
none99999 2008-11-01
  • 打赏
  • 举报
回复
bitblt是比较讨厌的东西

很多时候使用不同的计算机出现不同的结果

如果如果感觉自己人品不好就别用了,还是使用其他的方法来替换巴
shanying_0 2008-11-01
  • 打赏
  • 举报
回复
还有不要在说用drawimage之类的gdi+函数了。我这个程序用不了gdi+函数了。要是能用的话。我早就用了。gdi+封状了一些东西。导致我的程序只能被迫用gdi的函数。i hate gdi!!
shanying_0 2008-11-01
  • 打赏
  • 举报
回复
我这个只是个实验品。只是一个大功能上的一小部分。我就是想用bitblt来实现。帮我看看还有其他的错误么?
gomoku 2008-11-01
  • 打赏
  • 举报
回复
可以用Graphics.DrawImageUnscaled()代替BitBlt。


bitmap = new Bitmap(@"C:\Documents and Settings\Administrator\My Documents\My Pictures\222.bmp");

Bitmap bx = new Bitmap(800, 600);
using (Graphics gbx = Graphics.FromImage(bx))
{
gbx.DrawImageUnscaled(bitmap, new Rectangle(0, 0, 800, 600)); //<----
}

gomoku 2008-11-01
  • 打赏
  • 举报
回复
可以用Graphics.DrawImageUnscaled()代替BitBlt。


bitmap = new Bitmap(@"C:\Documents and Settings\Administrator\My Documents\My Pictures\222.bmp");

Bitmap bx = new Bitmap(800, 600, gbit);
using (Graphics gbx = Graphics.FromImage(bx))
{
gbx.DrawImageUnscaled(bitmap, new Rectangle(0, 0, 800, 600)); //<----
}

brallow 2008-11-01
  • 打赏
  • 举报
回复
我看看,先占个座。
shanying_0 2008-11-01
  • 打赏
  • 举报
回复

Bitmap bitmap = new Bitmap(@"C:\Documents and Settings\Administrator\My Documents\My Pictures\222.bmp");
Graphics gbit = Graphics.FromImage(bitmap);

// Bitmap bx = new Bitmap(800, 600, gbit);
// Graphics gbx = Graphics.FromImage(bx);
IntPtr dcSrc = gbit.GetHdc();

Graphics g = Graphics.FromHwnd(this.Handle);
IntPtr dcDest = g.GetHdc();
BitBlt(dcDest, 0, 0, 800, 600, dcSrc, 0, 0, SRCCOPY);
g.ReleaseHdc(dcDest);
gbit.ReleaseHdc(dcSrc);


我改成这样。还是黑的。郁闷。不知道什么原因了!!

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧