dongfa你好,久闻大名,谢谢!我现在试不了,我手头没有网眼,等晚上试完了看一下吧,如果可以,绝对少不了你的分,我现在的分有8000多,一个问题还没问过呢,这是我的第一个问题。另外我知道你对网络编程很有研究,我见过你编的Peeper,不胜佩服之至,如果将来碰到关于网络方面的问题,还要继续向您请教呢。如果想恢复原来大小,是不是另一个MoveWindow就可以搞定?能盖掉开始菜单吗?图象内容没关系,我用的是Stretch模式, capPrivew还是很好用的,我想可以将图象捕获成AVI格式,BMP格式的已经可以了,我有一块ATI 的TV WONDER TURNNER,如果需要捕捉的话,用CapPreview模式不可行,用Overlay模式只有声音,你可有用Overlay模式的经验?

解决方案 »

  1.   

    使用CWnd::ShowWindow可将窗口最大化后再恢复原有大小详细信息请查阅Msdn
      

  2.   

    谢谢两位,可是都行不通,原因是我的videownd不是topmost的,是在一个frame内的,请看部分代码:
       if( m_VideoStart ) return;HRGN        hRegion1 = CreateRoundRectRgn(0,0,640,480, 100, 100);   
            // create video capture window
       hWndVideo = capCreateCaptureWindow(
       (LPSTR) "My Capture Window",
       WS_CHILD | WS_VISIBLE,
       80, 0, 640, 480,
                      (HWND) this->m_hWnd,
       (int) 1);
      
          ::SetWindowRgn(hWndVideo,hRegion1,TRUE);
          capDriverConnect( hWndVideo, 0 );
    capDriverGetCaps( hWndVideo, &m_CapDrvCaps, sizeof(CAPDRIVERCAPS) ); capPreviewRate( hWndVideo, 100 );
    capPreview( hWndVideo, TRUE );
          m_VideoStart = TRUE;
      

  3.   

    使用CWnd::ShowWindow可将frame窗口最大化后再恢复原有大小需要再次改变其大小时 重设RGN
    HRGN hRegion1 = CreateRoundRectRgn(0,0,800,600, 100, 100);  
    ::SetWindowRgn(hWndVideo,hRegion1,TRUE);
    再使用ShowWindow
      

  4.   

    我觉得你这样直接调用数字并不好!应该通过GetWindowsPlacement得到的变量来设置窗口的大小。因为你的窗口显示与映射大小并不一定完全符合
      

  5.   

    如果想让窗口将一切全埋藏的话要将它设为顶层窗口,使个这个函数BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );SetWindowPos(&wndTopMost,0,0,800,600,SWP_SHOWWINDOW );