现在很多播放器都有这个功能 这个是如何实现的呢?
解决方案 »
- ???
- 如何让多个按钮不能用方向键选择
- 关于CSocket CSocketFile CArchive
- 这个问题怎么问呢?
- COM线程的问题(也就是套间问题),超级怪!!!!!!!!!!!!
- 如何产生随机负数
- 需vc开发人员
- 知道文件的全路径,如何取得文件名,如路径为C:\temp\try\file.dat,如何取得文件名file.dat?类型为CString
- 如何设置优先级?
- how to receive column's click message underlying clistview?
- Iocp使用TransmitFile传送文件?
- vc 用ado连接oracle9i问题,请高手指导下,谢谢!
因为如果只是简单输出到桌面DC,那么其它程序在刷新时,可能会破坏这种输出,除非不断的高速刷新来掩盖。一般采用半透明窗口或异形窗口,然后加上鼠标透过效果,也就是鼠标消息直接透过该歌词窗口,被下面所接收。我曾玩过这,不过现在忘的差不多了。
gdi 只能透明 边缘锯齿会很明显
2 将窗口钉在桌面上将窗口定在桌面上的方法DWORD dwStyle = 0;
HWND hDesktop = NULL;
CWnd* pWndDesktop = NULL;
// hWnd 半透明对话框的句柄
dwStyle = GetWindowLong( hWnd, GWL_STYLE); hDesktop = ::FindWindow( _T("Progman"), NULL); ::SetParent( hWnd, hDesktop);
caption:"DeskLrcCtrl"会不会是用置顶透明窗口写的窗体 sdk 函数输出歌词。。没用TEXT。。呵呵 猜测而已。。
1.使用UpdateLayeredWindow实现半透明效果,这个网上很多,不多说2.将窗口置顶,这个更简单3.还可以添加鼠标透过,鼠标透过的技术网上我没找到资源,不过我自己原来乱编写实现过。给你点提示,就是把消息和窗口绘制分开,即让你现在的窗口即能存在,还能像正常不断绘制,本身却不接收消息,系统直接当它不存在。
(这个方法是我自己想的,效果完全没问题,我原来编写的是一块半透明玻璃笼罩在桌面上,所有的窗口都在玻璃下显示,每个窗口都能正常的接收所有消息。但不知道正宗的鼠标透过技术是啥,有知道的发表一下啊)