我在ce6下建了个单文档程序,在视图类里建了一个CStatic对象用来显示视频,为什么播放视频的时候我点菜单,弹出的菜单总隐藏在我视频窗口的后面,怎么才能让他显示在视频窗口的前面来呀??我在视图类的PreCreateWindow()里加了cs.style &= ~WS_CLIPCHILDREN;
视频窗口是这样创建的
m_vWnd.Create(NULL,WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS,rect,this,ID_STATIC);求助!ths

解决方案 »

  1.   

    SetWindowPos(m_static,m_hWnd,0,0,0,0,SWP_NOMOVE);
      

  2.   


    wince下好像只有BOOL WINAPI SetWindowPos(
      __in_opt  HWND hWndInsertAfter,
      __in      int X,
      __in      int Y,
      __in      int cx,
      __in      int cy,
      __in      UINT uFlags
    );
    我在视图类里这样SetWindowPos(this,0,0,0,0,SWP_NOMOVE);好像界面都不会刷新了,比如我点击文件菜单,然后再点编辑菜单,文件菜单不会消失,需怎么改进??
      

  3.   

    如果我用这样,在视图类里
    ::SetWindowPos(m_vWnd.GetSafeHwnd(),this->m_hWnd,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
    还是不行啊,或者这样也不行:
    ::SetWindowPos(m_vWnd.GetSafeHwnd(),AfxGetMainWnd()->m_hWnd,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);点菜单弹出的下拉窗口的父窗口是CMainFrame吧,不是CView吧,这是不是有什么影响??
      

  4.   


    通过Directshow显示的啊,其他窗口也不能显示在前面来,比如我创建一个对话框,然后DoModal(),还是会隐藏在后面
      

  5.   

    改变视频显示的方法是什么意思,如果不用directshow的话,我的代码就没意义了
      

  6.   

    不是
    我用DirectShow做过视频显示
    没有你这个问题
    至少我没有发现
    不过其实我对DirectShow也是略知皮毛
    所以不好说你应该怎么改
    我用的是一个叫做CDXGraph的类
      

  7.   

    用过OpenGL,几乎没用过DX,如果DX也有绑定DC的处理的话,要绑定视图的DC,不要绑定屏幕DC。
      

  8.   

        现在发现我只要把显示视频的大小缩小点菜单就不会被挡住,原先的大小上下边充满了view类的客户区,还有如果我移动点击菜单弹出的对话框,让对话框的上边界或者下边界超过视频的上边界或者下边界,对话框马上就整体跑到视频的前面来了,这是为什么?? 怎么能让弹出的对话框始终显示在视频的前面接受用户输入?