一直没想清楚迅雷看看是如何做到“悬浮条”效果的: 当鼠标移动此区域则显示,鼠标可使用”“悬浮条”进行操作;当鼠标移出此区域则隐藏。图如下:是怎么做的?有什么类似效果、源码的?谢谢!

解决方案 »

  1.   

    通过修改窗口听alpha值就要可以实现,不能使用rgn,否则捕捉不到鼠标事件。
      

  2.   

    可以用定时嚣,用GetCursorPos,得到鼠标坐标,再用ScreenToClient等转换坐标,用PtInRect来判断点是否在那个空置上,是的话就显示那个窗口.
    或者就处理WM_MOUSEMOVE消息,实时用PtInRect来判断点是否在那个空置上
      

  3.   

    可以在父窗口通过OnMouseHover监控吧
    到指定区域就显示出一个悬浮条窗口
    然后这个窗口会托管鼠标消息
    如果OnMouseLeave则窗口自动隐藏
      

  4.   

    这个好做,主窗口响应MOUSE_MOVE消息,一旦鼠标落在指定的区域,就启动一个非模态无边框的对话框,对话框里面贴一些小图片,也响应MOUSE_MOVE消息,根据鼠标在非模态对话框里面的位置可以换图片产生点亮等效果,LBUTTON_BOWN启动其它功能。
    当鼠标移出对话框时,主窗口重新响应MOUSE_MOVE消息,销毁这个小对话框。
      

  5.   

    这个比较简单啦。SKINSE界面库提供的Player工程---高度模仿暴风影音中,有实现代码。可以下载来看看。
    下载地址http://www.skinse.com
      

  6.   

    这个实践了下, 还是有问题的。1.  当播放的时候, 视频画面一直刷新,工具条显示不出来。 视频窗与工具条同属一个窗口的子窗口。
    2.  当工具条为child 风格不能设置成透明。
      

  7.   

    1 视频窗口刷新时,使用CRgn,工具条显示时,区域中去掉工具条所在的区域
    然后只画这人区域就行了
    2 直接用ShowWindow()