首页 | 手机 | 笔记本 | 硬件 | MP3 | DC | DV | 品牌机 | 办公 | 网络 | 服务器 | 投影 | 新闻 | 游戏 | 学院 | 下载 | 家园 | 生活
首页 >> 学院 >> 工具软件 >> 工具软件媒体
用Media Player设计个性化媒体播放器
2004-9-22 10:27:00 文/郎锐 出处:天极网

  窗体半透明效果实现

  窗体半透明这一功能实际是为了满足“一心二用”的目的而特别添加的。笔者通常在播放媒体文件时阅读电子图书,将播放软件设置为最前后总是占据不小的屏幕面积并遮挡了不少文字,使阅读变的非常不便。因此才有了将播放软件界面设置为半透明这一想法。

  传统的Windows应用程序想实现半透明效果,一般来说需要处理自己的窗口的WM_Paint消息窗口,比较麻烦。在Windows 2000以上版本的操作系统中提供有一个新的API函数SetLayeredWindowAttributes(),它能很方便的将窗体设置为半透明效果,其函数声明如下:

BOOL SetLayeredWindowAttributes(
 HWND hwnd, // handle to the layered window
 COLORREF crKey, // specifies the color key
 BYTE bAlpha, // value for the blend function
 DWORD dwFlags // action
);

  其中dwFlags有LWA_ALPHA和LWA_COLORKEY两种设置,如果LWA_ALPHA被设置的话,通过bAlpha决定透明度;如果LWA_COLORKEY被设置的话,则指定被透明掉的颜色为crKey,其他颜色则正常显示。为了能够使用该函数,还必须在之前添加预定义语句:

#define WS_EX_LAYERED 0x00080000

  在用GetModuleHandle()装载USER32.DLL模块并调用GetProcAddress()得到函数 SetLayeredWindowAttributes()在User32.dll中的指针后就可以通过SetLayeredWindowAttributes()函数将窗体设置为半透明了:

// 全局变量
typedef BOOL (WINAPI *lpfn) (HWND hWnd, COLORREF cr, BYTE bAlpha, DWORD dwFlags);
lpfn g_pSetLayeredWindowAttributes;
……
// 获取函数 SetLayeredWindowAttributes 在User32.dll中的指针
HMODULE hUser32 = GetModuleHandle(_T("USER32.DLL"));
g_pSetLayeredWindowAttributes = (lpfn)GetProcAddress(hUser32, "SetLayeredWindowAttributes");
if (g_pSetLayeredWindowAttributes == NULL)
 ::PostQuitMessage(0);
 ……
 // 半透明
 HWND hWnd = GetSafeHwnd();
 LONG lWindowLong = GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED;
 ::SetWindowLong(hWnd, GWL_EXSTYLE, lWindowLong);
 g_pSetLayeredWindowAttributes(hWnd, 0, (BYTE)m_sldAlpha.GetPos(), 2);
 ::RedrawWindow(hWnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN);

  为了方便控制窗体的透明程度,可添加滑动条控件对其进行控制。经过这样的处理,就可以在播放媒体时不受打扰地继续阅读被其遮挡的文字了。

  小结

  本文通过对Windows Media Player控件的使用实现了Windows Media Player 9.0媒体播放软件所具备的一般功能,并以热键隐藏、呼出窗体和窗体半透明设置为例介绍了个性化编程的一般方法。读者可以根据需要以类似的方式通过对其他软件提供的控件如Realplayer等的使用编写支持其他格式媒体的个性化媒体播放程序。本文所述程序在Windows 2000 Professional 下由Microsoft Visaul C++ 6.0编译调试通过,程序运行环境需要预先安装Windows Media Player 9.0。


IT产品热门报价
 手机 更多>>
 笔记本 更多>>
 数码产品 更多>>
 电脑硬件 更多>>
热点推荐
·IT江湖牛B事之口水系列
·震撼21款AM2主板横评专题
·冷眼看暑促价格战非万能
·学生购买笔记本全面指导
·快乐支付体验会现场报道
·是明星贪财还是商家无耻?
·QQ2006
·PPlive
·酷狗
·超级转换秀
·明星三缺一
·PPstream
·TOM-Skype
·珊瑚虫QQ 
生意经
看本文的网友还看了:
  • 如何才能观看有DRM认证的教程 2006年8月28日
  • Windows Media Player11使用技巧 2006年7月18日
  • Media Player充当“兼职”图片浏览器 2006年2月1日
  • 给你的WMP加个调速器 2004年11月5日
  • My MPC常见问题解答 2004年10月29日
  • 看本文网友的博客:
    ·很棒小秘书称软件删不掉是用户水平太低
    ·[软件资讯榜]惊爆!央视推出I
    ·网络跨进“娱乐时代”
    ·[软件资讯榜]真正的Web 2
    ·[[软件资讯榜]腾讯QQ2006
    2006 经营许可证编号:浙B2-20040150 粤B2-20050807 广告联系:020-61081800