bitblt和copyrect函数的怪问题!!!!!!!!!!(100分)

  • 主题发起人 主题发起人 chonsee
  • 开始时间 开始时间
C

chonsee

Unregistered / Unconfirmed
GUEST, unregistred user!
由于我最近做了一个动态的屏幕监视程序,我使用bitblt函数捕捉对方屏幕
,能正确捕捉对方的屏幕.可是当对方在进行影视播放时,我这里显示的只是
一个黑的矩形区域.不知是怎么回事?是不是bitblt函数的最后那个参数设置
不对?后来我在本人机子上进行了一个测验.我新建了两个窗口form1和form2 ,
form1影视播放,form2放了一个image控件以显示播放影视窗口的图象
我使用了bitblt函数,还是象上面那种情况.后来我改用image控件的copyrect方法
:image1.canvas.copyrect(rect(0,0,image1.width,image1.height),form1.canvas,
form1.clientrect);可是显示的还是一个黑的矩形区域,当我把form2拖动form1
的上方时在image的那个区域却能显示form1的播放的图象.好像form2是透明的一样.
我不知道这是怎么回事?可我在一本书上好像看见过使用image的copyrect方法能够实现.
望高手指点指点
 
好像要先定义当前的调色板
 
怎么定义当前的调色板?
能给出源代码吗?谢谢!!!!!!!!!
 
我应该怎样做呢?
都说这里的高手入云,可是还是没有人回答我的问题.
 
CopyRect或者BitBlt是gdi函数,只能看到普通的,

而放vcd或者其他视频,是通过高速的 DirectX 播放的,
不能用gdi函数得到
 
你就是按“Print Screen”拷贝屏幕也会发现拷贝不到那些窗口
 
你的问题涉及到视频传输,要知道由于受网络速度的限制,VCD是不可能适时传输的,
所以你会看见黑屏。
 
我就是在本机实行上操作还是得到黑屏的结果,难道不能解决吗?
 
这个问题难道不能解决?
 
direct draw 画出来的东西不同于其他的gdi函数画的,
它没有在内存中保留画面,直接画到显存里面去了,
所以看来是很难截取的了
 
都是为了输出图象的速度
 
看看一些抓图软件吧.以可以抓这些图片为卖点的.
这些有的是用directx draw的
有的是用显卡支持的视频Overlay方式叠加上去的.
而你抓到的是GDI显示的东西.一般是黑色的.超级结巴是粉色的.
要想抓这些图.可能要研究一下底层的东西了.比如显示方式.现存使用等等.
 
难道真的没有人会吗?
 
请继续讨论!!!!!!!
 
屏幕颜色数不同
 
能不详细一点
 
多人接受答案了。
 
后退
顶部