我听说用bitblt和redrawwindow是能后台取色的,但是不知道该怎么做。各位高手能帮一下忙吗?

解决方案 »

  1.   

    后台取色最简单的是
    取一点的颜色
    c= GetPixel( hdc,  XPos,   nYPos)取一块的颜色,dc拷贝到dc2
    hmendc=createcompatibleDc(hdc);
    hbmp=createcompatiblebitmap(hdc,w,h);
    selectobject( hmemdc,hbmp);
    biblt( hmemdc....,hdc,....);
    biblt( hdc2....,hmemdc,....);
      

  2.   

    BitBlt应该是复制指定设备场景的指定区域,而非取色。
    取得某一个点的颜色应该使用:GetPixel不管是前台还是后台,只要获得其hdc,就可以使用GetPixel读取指定点的颜色。
    Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
      

  3.   

    问题是,我要取色的窗口在屏幕外,无法自动刷新,好像要先刷新再取色才行啊
    另外,getpixel是个没有的东西