现在有两个子窗口。
第一个窗口始终为当前活动窗口。
现在要扫描第二个窗口的象素,必须将第二个窗口设为当前活动窗口(是这样的吗?)。
请问如何做?3X

解决方案 »

  1.   

    我看着有点晕,当前活动窗口是指有焦点的敞口吧? SetFocus就可以
    扫描个窗口的象素是什么意思?取像素值和有没有焦点没关系阿,
    可以把窗口内容拷贝到一个CBitmap中,在内存里分析就是了
      

  2.   

    设置为当前活跃窗口,很容易做到,SetWindowPos(),SetForegroundWindow,SwitchToThisWindow都可以
      

  3.   

    这些都用了。然后在这些语句后面使用GetActiveView,得到的还是第一个子窗口。好像第二个子窗口从来就没有当前活动过。但是第二个窗口里面又有图形。如果第二子窗口不能刷新,是不可能显示图形的。现在的问题是glPixelStorei和glReadPixels只能读第一个子窗口的象素。我怀疑是分割子窗口的时候,有些地方没有处理好。
      

  4.   

    看看这几行代码你用得着吗
    ::SetForegroundWindow(句柄);          //切换窗口到前台并激活窗口给于焦点
    ::PostMessage(句柄, WM_SYSCOMMAND,SC_MAXIMIZE, 0);    //如果程序最小化先恢复成最大化
    SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);// 顶层显视
    SetWindowPos(&wndNoTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);  //取消顶层显视
      

  5.   

    没有用的。
    我怀疑是第一个子窗口和第二个子窗口之间的消息传递出现问题,导致第一个子窗口一直占据当前活动位置。但是无论如何第二个子窗口的图形应该可以拷贝下来,现在在第二个视图类(对应第二个子窗口)的ondraw函数用使用图形拷贝函数和命令,都没有用,拷下来的是空白。