模仿酷狗7(Kugou7)界面源码

邓学彬 2011-06-23 08:51:09
加精
本文出自:http://blog.csdn.net/CometNet/archive/2011/06/22/6561912.aspx
源码名称:模仿酷狗7(Kugou7)界面源码
源码作者:邓学彬(泪闯天涯)
源码说明:内含VC++源码、易语言源码各一份.包含所有图片源码(使用Fireworks编辑)
开发环境:VC版--VS2005、Gdiplus;易语言版--易语言5,无模块
实现方法:给窗口加上WS_EX_LAYERED样式,使用Gdiplus画出图片,然后UpdateLayeredWindow。处理WM_MOUSEHOVER、WM_MOUSELEAVE消息,鼠标进入或移出画出不同状态。
注意事项:只是实现初步模仿而已,未响应子控件操作,如果大家有兴趣就接着完善吧。



主要源码:
void CKugouUIDlg::DrawUI(void)  
{  
    HDC hDC=::GetDC(m_hWnd);  
    HDC hMemDC=::CreateCompatibleDC(hDC);  
    BITMAPINFO bitmapinfo;  
    bitmapinfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);  
    bitmapinfo.bmiHeader.biBitCount = 32;  
    bitmapinfo.bmiHeader.biHeight = m_KugouUI.height;  
    bitmapinfo.bmiHeader.biWidth = m_KugouUI.width;  
    bitmapinfo.bmiHeader.biPlanes = 1;  
    bitmapinfo.bmiHeader.biCompression=BI_RGB;  
    bitmapinfo.bmiHeader.biXPelsPerMeter=0;  
    bitmapinfo.bmiHeader.biYPelsPerMeter=0;  
    bitmapinfo.bmiHeader.biClrUsed=0;  
    bitmapinfo.bmiHeader.biClrImportant=0;  
    bitmapinfo.bmiHeader.biSizeImage = bitmapinfo.bmiHeader.biWidth * bitmapinfo.bmiHeader.biHeight * bitmapinfo.bmiHeader.biBitCount / 8;  
    HBITMAP hBitmap=::CreateDIBSection (hMemDC,&bitmapinfo, 0,NULL, 0, 0);  
    HBITMAP hOldBitmap = (HBITMAP)::SelectObject (hMemDC,hBitmap);  
    Graphics g(hMemDC);  
    //画出各个界面元素----------------------  
    DrawItem(&g,m_KugouUI.left);  
    DrawItem(&g,m_KugouUI.top);  
    DrawItem(&g,m_KugouUI.right);  
    DrawItem(&g,m_KugouUI.bottom);  
    DrawItem(&g,m_KugouUI.main);  
    for(int i=0;i<4;i++)  
        DrawItem(&g,m_KugouUI.Item[i]);   
    //设置透明窗口-------------------------------------------------  
    CPoint DestPt(0,0);  
    CSize psize(m_KugouUI.width,m_KugouUI.height);  
    BLENDFUNCTION blendFunc32bpp;  
    blendFunc32bpp.AlphaFormat = AC_SRC_ALPHA;  
    blendFunc32bpp.BlendFlags = 0;  
    blendFunc32bpp.BlendOp = AC_SRC_OVER;  
    blendFunc32bpp.SourceConstantAlpha = 255;  
    ::UpdateLayeredWindow(m_hWnd,hDC,NULL,&psize,hMemDC,&DestPt,0,&blendFunc32bpp,ULW_ALPHA);  
    //释放资源-------------------------------------------------  
    ::SelectObject (hMemDC,hOldBitmap);  
    ::DeleteObject(hBitmap);  
    ::DeleteDC(hMemDC);  
    ::ReleaseDC(m_hWnd,hDC);  



作者Blog:http://blog.csdn.net/CometNet/
源码下载:http://download.csdn.net/source/3386452
...全文
8404 192 打赏 收藏 转发到动态 举报
写回复
用AI写文章
192 条回复
切换为时间正序
请发表友善的回复…
发表回复
daixiaoxiao214 2013-06-25
  • 打赏
  • 举报
回复
界面功能很强大,值得学习
huoshenaoyu 2013-02-25
  • 打赏
  • 举报
回复
顶呀~~现在才刚开始学VC,,一切都很蛋疼中~~
vclover2009 2013-02-22
  • 打赏
  • 举报
回复
分享的一律支持
cymbal 2013-02-05
  • 打赏
  • 举报
回复
很神奇 学习学习
VCAlice 2013-01-12
  • 打赏
  • 举报
回复
好棒啊,真希望自己也能早点作出这么漂亮的界面!
bishop1014 2013-01-12
  • 打赏
  • 举报
回复
学习 谢谢分享
  • 打赏
  • 举报
回复
楼主真乃神人也!
东北熊孩子 2012-12-13
  • 打赏
  • 举报
回复
这个确实不错呵呵,仿真的很像啊。希望主楼继续啊,我支持你。同时也支持原创。
东北熊孩子 2012-10-09
  • 打赏
  • 举报
回复
能否弄一个视频 讲讲啊,思路是什么啊,我想学习一下,加我QQ:924200235

感觉真的很不错。
i诙谐 2012-08-17
  • 打赏
  • 举报
回复
不错哦,顶一个
likelike0724 2012-08-14
  • 打赏
  • 举报
回复
看上去很厉害到样子 -。-
唐伯虎揼秋香 2012-08-14
  • 打赏
  • 举报
回复
支持下
Jarno_zhang 2012-08-13
  • 打赏
  • 举报
回复
挺漂亮的!
hansir244 2012-08-02
  • 打赏
  • 举报
回复
学习了
Wangyufeng_scut 2012-07-24
  • 打赏
  • 举报
回复
看不懂
q402304905q 2012-07-18
  • 打赏
  • 举报
回复
确实是个高手
wojiushi3344 2012-05-18
  • 打赏
  • 举报
回复
可以理解成实现一个不规则的透明窗口吗?很不错,还有源代码,支持一下!!
李牙刷儿_ 2012-05-15
  • 打赏
  • 举报
回复
不错支持一次啊
mypint_skyman 2012-03-31
  • 打赏
  • 举报
回复
MFC学的真好
bb472455383 2012-03-19
  • 打赏
  • 举报
回复
LZ知不知道酷狗7的菜单怎么做的
加载更多回复(161)

15,979

社区成员

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

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