100分请为一个MFC窗口显示问题;

V若只如初见 2010-07-31 08:34:32
现在我要实现一个播放窗口,在全屏和最小化之间切换的功能;
问题,在全屏的时候,我想实现暴风影音那种,有个浮动的工具条,鼠标移动到下方区域就显示出来,请问怎么实现这个功能。

我用调用了一个ActiveX播放器veryMatrix他们的方法FullScreen实现全屏,但是我的工具条怎么都无法显示上去了。
不知道他们那个方法是怎么实现的,难道调用了SetWindoPos设置为topmost后,其他窗口就不能显示上去了吗?

那暴风那种是怎么实现的,请各位帮忙提供一些思路。
...全文
128 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
V若只如初见 2010-08-01
  • 打赏
  • 举报
回复
没人知道么
xxd_qd 2010-08-01
  • 打赏
  • 举报
回复
呃,你那个播放器窗口的全屏,恐怕已经不是GDI的全屏,而是DirectX的全屏了吧?
V若只如初见 2010-08-01
  • 打赏
  • 举报
回复
继续期待~!
V若只如初见 2010-08-01
  • 打赏
  • 举报
回复
不知道是不是directx的全屏,我 猜应该是,因为普通窗口全屏应该是可以有浮动窗口的。

如果是Directshow的全屏,我们在使用这个AcitveX播放器控件的时候,还有其他方式实现浮动工具条么?
xizaone 2010-07-31
  • 打赏
  • 举报
回复
路过
看看
V若只如初见 2010-07-31
  • 打赏
  • 举报
回复
一般的窗口通过下面的方法都是可以实现的,我自己写了个测试程序,代码如下,可以实现当前窗口topmost,然后再当前窗口上,再显示toolbar。

int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);

::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,cx,cy,SWP_SHOWWINDOW);
::SetWindowPos(m_pDlgToolbar->GetSafeHwnd(),HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_SHOWWINDOW);

但是我的ActiveX播放器程序中,我调用的是播放器SDK提供的方法,fullscreen();然后,我再调用
::SetWindowPos(m_pDlgToolbar->GetSafeHwnd(),HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_SHOWWINDOW);

这样,我的m_pDlgToolbar窗口就无法最前端显示了,谁做过播放器窗口的,请帮忙提供一下解决思路。
辛鹤 2010-07-31
  • 打赏
  • 举报
回复
CToolBar::SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
Liberty-Bird 2010-07-31
  • 打赏
  • 举报
回复
CToolBar::SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
oyljerry 2010-07-31
  • 打赏
  • 举报
回复
捕获鼠标移动WM_MOUSEMOVE,然后控制你工具条的现实和隐藏...

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧