我来这里提问是寻求一个答案.我知道在windows的GUI下很难实现alpha混合创造的部分透明的窗口,而碰巧我遇到了.星期5的时候加了一下作者的群,了解到是从底层开发起来,并且明确指出了没有用到windows的GUI.整个程序只有一个exe是绿色版本的程序.大小不过600多K.不知道哪位高手能分析一下实现的原理?难道是通过驱动显卡的方式来绘图?那工作量也太大了吧.是否用得C++和DirectX的形式?我知道这种方式做起半透明来还是比较容易的.但是DirectX很吃资源,我通过任务管理器并没有发现这一点.费解..请高人指点关于程序.(百度搜索"airplay"可以下载看一下效果,十分的华丽.CPU使用率也不是很高)
解决方案 »
- 关于VC调用EXE问题,高手和非高手都请进
- (求助)如何实现电脑连手机直接发短信。。。。。
- 在程序中实现连接VC6.0的功能
- 关于CRect对象作用范围的问题
- VC实现QQ消息框输入内容发送
- 按行读取文本文件的问题
- 本人想用vc写一个控件,请高人指点
- 求购两个文件(可以再加90分):如下
- 我怎么用CreateDialog 建立一个对话框呢! 谁有代码!!多谢!CreateDialog(hInst,LPCTSTR"ID_",hWnd,DlgProc);
- 如何把一个屏幕上的内容输出到打印机上
- 编译错误问题,为什么我的程序会在output窗口提示我的函数加了个"_" ?
- VC/MFC区最近很火爆啊!
播放器的靓点 就是在UI下做文章吧
up
我刚才分析了一下,最有可能的就是经过长时间的SDK开发.将各个控件以自定义驱动的形势表现到同一界面上合成.
一开始我可能是理解错了,开发者所说的不用windowsGUI 可能是说的GDI.我以为是驱动显卡直接在LCD上显示.
佩服的五体投地.后来发现了WS_EX_LAYERED风格后,否认了.
主要用到4个窗口,都设置了Layered属性,其中3个半透明,一个不透明。不透明的用来显示歌曲名称,信息,以及若干播放操作按钮。基本操作应该是类似你所说,然后在动态化窗口上下足了功夫,可见作者使用界面操作的功力。
播放使用的是DShow方式。
也可以用clutter