高仿QQ2012登录界面, 用的是MFC写的Direct UI 方式,支持换肤,先看效果图

QQ透明皮肤:多层算法,一键适配各种背景

代码和这个的方法有点像,分为背景层,质感层,内容层
背景层:最下面的是背景层,QQ的界面当要做为皮肤的图片小于界面时其他的地方就会用图片的平均颜色来填充,在图片和平均颜色的地方还有个过滤的效果
过度效果如下图

取得平均颜色的代码如下

// 取得图片平均颜色
bool GetAverageColor(CDC *pDC, CBitmap &bitmap, const CSize &sizeImage, COLORREF &clrImage)
{bool bIsResult = false;CDC TempDC;TempDC.CreateCompatibleDC(pDC);CBitmap *pOldBitmap = TempDC.SelectObject(&bitmap);int nWidth = sizeImage.cx;int nHeight = sizeImage.cy;// 定义位图信息   BITMAPINFO bi;  bi.bmiHeader.biSize = sizeof(bi.bmiHeader);  bi.bmiHeader.biWidth = nWidth;  bi.bmiHeader.biHeight = nHeight;  bi.bmiHeader.biPlanes = 1;  bi.bmiHeader.biBitCount = 32;   bi.bmiHeader.biCompression = BI_RGB;   bi.bmiHeader.biSizeImage = nWidth * nHeight * 4; // 32 bit   bi.bmiHeader.biClrUsed = 0;  bi.bmiHeader.biClrImportant = 0;  // 获取位图数据   BYTE* pBits = (BYTE*)new BYTE[bi.bmiHeader.biSizeImage];  ::ZeroMemory(pBits, bi.bmiHeader.biSizeImage);  int nLine = ::GetDIBits(TempDC.m_hDC, (HBITMAP)bitmap.GetSafeHandle(), 0, nHeight, pBits, &bi, DIB_RGB_COLORS);if (!nLine)  {  delete []pBits;  pBits = NULL;  } else{long r = 0, g = 0, b = 0;for (LONG i = 0; i < nWidth; i++)     {     for (LONG j = 0; j < nHeight; j++)     {     b += pBits[(j * nWidth + i) * 4];                   g += pBits[(j * nWidth + i) * 4 + 1];r += pBits[(j * nWidth + i) * 4 + 2];      }     }  delete []pBits;  pBits = NULL;  int n = nWidth * nHeight;clrImage = RGB(r / n, g / n, b / n);bIsResult = true;}TempDC.SelectObject(pOldBitmap);TempDC.DeleteDC();return bIsResult;
}

质感层:质感层可以只是一个带透明度的矩形(一般为白色吧),可以是整个矩形透明度一样,也可以从上到下减少如下图

左边的效果是如四个区域组成,右边的是四个区域分开的效果

内容层: 内容层也就是控件层了没什么好说的,少个质感层的话会是这种效果

其他方面也就没什么了,详情请看代码

如果发现在BUG什么的或有别的实现方法可以联系我QQ:278162354

附源代码下载地址

高仿QQ2012登录界面相关推荐

  1. WordPress 高仿 36KR 登录界面

    2019独角兽企业重金招聘Python工程师标准>>> 加入Wordpress家庭,折腾的脚步就不能停歇,今天有时间研究一下Wordpress登录界面.或许你和我一样,已经厌倦了平平 ...

  2. 详解使用NetBeans IDE 8.2进行可视化图形界面设计——高仿QQ登录界面

    目录 前言 QQ登录界面的设计与实现 1.新建一个Java项目 2.在任意包下新建一个JFrame窗体类 3.添加图片 4.设置账号文本框(JTextField)与密码框(JPasswordField ...

  3. java仿qq登录 界面设计,Java Swing仿QQ登录界面效果

    本文实例为大家分享了Java Swing仿QQ登录界面展示的具体代码,供大家参考,具体内容如下 闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEcl ...

  4. java如何引入qq登陆,Java Swing仿QQ登录界面 学习之用

    闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEclipse的拖动功能). 源代码如下: package ibees.qq; import java ...

  5. 高仿微信聊天界面长按弹框样式

    效果图 背景 在公司做的项目里面,刚好有需要用到微信聊天界面长按弹框样式这种UI的. 网上找了一下,没找到. Android现成的 ListPopupWindow又不能满足需求. 因此在非上班时间撸一 ...

  6. android仿微信聊天功能,Android高仿微信聊天界面代码分享

    微信聊天现在非常火,是因其界面漂亮吗,哈哈,也许吧.微信每条消息都带有一个气泡,非常迷人,看起来感觉实现起来非常难,其实并不难.下面小编给大家分享实现代码. 先给大家展示下实现效果图: OK,下面我们 ...

  7. java gui界面设计qq_Java swing界面开发(仿QQ登录界面)

    首先引入包的概念,包:给代码分类,提高的了代码的可读性,封装后方便管理.在包中类的引入:import 包名.类名;包名需小写,多单词用"."隔开.类名的命名规范:首字母大写其后的每 ...

  8. php写的微信聊天界面,Android_Android高仿微信聊天界面代码分享,微信聊天现在非常火,是因其 - phpStudy...

    Android高仿微信聊天界面代码分享 微信聊天现在非常火,是因其界面漂亮吗,哈哈,也许吧.微信每条消息都带有一个气泡,非常迷人,看起来感觉实现起来非常难,其实并不难.下面小编给大家分享实现代码. 先 ...

  9. android 微信高仿,Android高仿微信聊天界面代码分享

    微信聊天现在非常火,是因其界面漂亮吗,哈哈,也许吧.微信每条消息都带有一个气泡,非常迷人,看起来感觉实现起来非常难,其实并不难.下面小编给大家分享实现代码. 先给大家展示下实现效果图: OK,下面我们 ...

最新文章

  1. 2.5.3 工作日处理函数(自定义节假日).sql
  2. PHP curl 模拟登录
  3. cs231n笔记:线性分类器
  4. 【OpenCV】OpenCV访问像素点的三种方式
  5. AS3连接MYSQL数据库
  6. linux locate 快速查找命令介绍
  7. 今天写出一个十分弱智的bug!
  8. 虚拟机同步器用易语言怎么写_安装虚拟机的好处或用处是什么/如有效地防止病毒...
  9. matlab程序中中零内插在qdpsk调制中的作用,桂林电子科技大学通信原理思考题
  10. java/php/net/python房产信息管理系统设计
  11. matlab 拉普拉斯金字塔,图像拉普拉斯金字塔(laplacian pyramid)并从金字塔重建原图 matlab程序实现...
  12. 笔记——数据归一化 scikit-learn中的Scaler
  13. 深度学习中的batch、epoch、iteration
  14. ctfshow 网络迷踪-给你拷上
  15. Android 图片波浪动画,Android水纹波浪动画
  16. starGAN v2 论文阅读
  17. 投资入门第 3 步:技术分析法(常用技术分析)
  18. flutter 微信聊天输入框
  19. linux+nas+私有云软件,自建家庭私有云NAS——磁盘管理系统
  20. 强!Java实现MSN Messenger聊天

热门文章

  1. 如何电脑忘记开机密码怎么办
  2. Shader——消融效果
  3. Odoo14免费开源ERP实施指南:CRM功能应用篇(2)
  4. VScode 常用快捷键以下
  5. ZOC for MAC OS X 的中文乱码问题
  6. 一个清华大学生几天猎头生活的感想---很有感触的一篇文章
  7. Excel 2010 SQL应用027 查询同时满足两个条件的记录
  8. 实时推荐系统的3种方式
  9. 【强大的数据迁移和恢复解决方案】KernelApps及其产品介绍
  10. 如何跳过sourceTree登录