前几天在vckbase上面看到这么一篇文章
现在模仿一下来实现一下这个功能
[quote]
随着计算机技术的发展与普及,计算机逐渐走进了人们的日常生活当中。人们通过它来学习,娱乐,信息的交互等等.并且对应需而生的各种各样的软件产品的要求也有了一定的提高。除了基本功能外,对软件易操作性,界面的美观性等也是一个成功软件必不可少的重要因素。美观个性化的界面是一个软件吸引和留住用户的法宝之一,通讯软件QQ/MSN就是这类产品中的一个典型的代表,下面将用VC++对QQ的界面进行模拟实现,供广大朋友参考。
  相信各位对QQ已经相当熟悉,因此对其外观特性等不作累叙.我们将选用Visual C++来进行进行实现。在这之前,有必要向读者介绍一下大体情况。
  其实,整个过程最重要的部分是个性化界面自绘部分,也是难度最大的部分。关于界面编程方面的知识,诚然这是一个较为大的体系结构,我们不能奢求通过简短的篇幅就能对它进行较为全面的描述,并且现在软件开发行业也有缩短开发周期,提高开发效率的趋势,于是将这一难度问题借用外在控件协助我们完成。
  关于换肤控件的选择,这里也向大家简单介绍一下,当然这只是个人的观点,仅供参考了解。当前市场提供多个换肤出名的换肤产品(SkinMagic,Skin++,USkin,AppFace,SkinCrafte,等),其中SkinMagic,AppFace,USkin等都是做得比较马虎的,界面的某些元素效果做得让人不太满意.而Skin++和SkinCrafte在这方面做得比较出色.客观的说Skin++目前应该说,是国内较为出色的产品,其占用资源消耗比俄国产品SkinCrafte要出色,而俄国产品SkinCrafte在外观性能上做到的效果比Skin++要优秀点,COOL一点。
  虽然如此,本实现没有选用以上任何一产品,原因是这里有一个新起之秀SkinBeauty,它无论是性能和外观做出的效果都比较嚣张,更甚的是宣称提供良好的键盘操作支持同时并号称在Win2K和XP等系统可以做出Vista的玻璃磨沙效果。
  当然,这些都是所谓的比较结果而已,还有一个选用SkinBeauty的原因是:SkinBeauty可以使用自带的皮肤编辑软件(SkinBeauty Studio)实现一套皮肤包含多种样式的窗口界面,按钮样式等。这是以上任何一个产品暂时似乎都不能提供的。而我们这个项目的需求也有此(主界面,聊天对话框窗口不同,并有多个不同特性的按钮等细节问题)。[/quote]
0.准备工作:

用产品相应的皮肤编辑软件SkinBeautyStudio编辑好界面各元素皮肤,一般好看的界面都是由图片绘制所成(这里是到其主站下载已有的BeautyQQ.bsk皮肤)。将下载好的换肤开发库(SkinBeauty.dll,SkinBeauty.lib)和接口文件SkinBeautyExport.h准备好,下载地址在本文章后有给出,或自己到[url]www.afe-soft.com[/url]上自己下载。
2.加载换肤库

做好基本框架后,界面还是很土,运行效果难以让人满意,于是我们接下来可以加载换肤库,初步改变程序的界面外观了。
将先前准备好的skinBeauty.dll库放在项目的运行目录,在项目的目录放入SkinBeautyExport.h文件和SkinBeauty.lib文件,以便稍后引入并调用函数接口。(一般DLL库的调用分成静态调用和程序运行期间动态调用2种,关于这两种的区别,可参考其他文章。这里,我们将选用静态调用的方式实现)

在适当的位置添加引入库的声明,这里我们选择在stdafx.h文件里面添加:

//inside stdafx.h
//SkinBeauty Lib Call
#include  "SkinBeautyExport.h"
#pragma   comment(lib,"SkinBeauty.lib")
在项目得初始化位置(这里选择在项目的创建实例cpp文件里面,BeautyQQ.cpp的CBeautyQQApp::InitInstance()函数的开始,一般都可以在此加载)加入皮肤加载的代码:
BOOL CBeautyQQApp::InitInstance()
{CString exeFullPath;CString strFilename;int nLen = GetModuleFileName(NULL, exeFullPath,MAX_PATH);CString strPath(exeFullPath);strPath = strPath.Left(strPath.ReverseFind('\\'));strFilename = strPath +_T("\\beautyQQ.bsk");SkinLoad(THCAR2char(strFilename.GetBuffer(0)));        ......
}

©著作权归作者所有:来自51CTO博客作者googlemaps的原创作品,如需转载,请注明出处,否则将追究法律责任
软件 职场 程序

0

分享

微博 QQ 微信

收藏

上一篇:cannot open file... 下一篇:在VC6.0下设置Unicode...
googlemaps

82篇文章,14W+人气,0粉丝

Ctrl+Enter 发布

发布

取消

6条评论

按时间倒序 按时间正序

转载于:https://blog.51cto.com/suxiangjuner/146062

VC模仿超炫QQ界面的实现相关推荐

  1. 基于TCP,Socket编程,模仿腾讯QQ界面,使用Java开发的一款网络聊天工具。QQ_Chat

    代码下载地址 原博客地址 QQ_Chat 基于TCP,Socket编程,模仿腾讯QQ界面,使用Java开发的一款网络聊天工具. (内含报告) 工具: Eclipse.Navicat for MySQL ...

  2. vc循序渐进实现仿QQ界面(一):圆角矩形与双缓冲贴图窗口

    印象里仿QQ界面的程序应该有很多,搜了一下,虽然出来一大堆,排除了重复的,却只有两三个,没我想象的好.经常看到CSDN上有人问,QQ这个功能怎么实现,那个界面怎么实现,归纳了一下,决定写这么一个仿Q ...

  3. vc循序渐进实现仿QQ界面(三):界面调色与控件自绘

    本篇讲述如何进行界面调色.界面调色一般有两种方法,调色板和HSL色彩变换.调色板局限于256色,这里不采用,因此用HSL色彩变换实现.首先要了解一下什么是HSL色彩空间,完整且详尽的知识请到维基百科 ...

  4. 超酷超炫Linux: Linsta 媲美 Vista

    看了上面这张截图, 是不是有似曾相识的感觉? 花哨界面不是 Windows Vista 和 MacOS的专利, KDE/gnome也可以玩 超酷. 超炫的界面主题. gnome的默认色调较为灰暗,这对 ...

  5. QQ界面技术(DirectUI)

    DirectUI界面库 取名自微软的一个窗口类名"DirectUIHWND",意为Paint on parent dc directly.即子窗口不以窗口句柄的形式创建,只是逻辑上 ...

  6. jquery ui仿腾讯web qq界面desktop酷炫特效

    下载:20130709125708248 原文:jquery ui仿腾讯web qq界面desktop酷炫特效

  7. php 超炫 页面,dedecms织梦后台模板,超炫界面风格

    dedecms织梦后台模板,超炫界面风格 互联网收集,版权归原作者所有,请勿用于商业使用,仅供学习参考.将dede和include文件夹上传到你的网站根目录进行覆盖即可.(注:如果你的后台目录修改了的 ...

  8. (JAVA)使用swing组件模仿QQ界面+网络编程实现QQ消息传输

    直接贴当时的实验报告吧. 1.课程题目 模仿腾讯QQ实现一个即时聊天软件,可以进行好友管理以及私聊等功能. 1.1功能性分类 功能类别 功能名称.标识符 描述 用户信息 用户登陆 用户登陆 用户注册 ...

  9. ios 仿电脑qq登录界面_iOS开发UI篇—模仿ipad版QQ空间登录界面

    iOS开发UI篇-模仿ipad版QQ空间登录界面 一.实现和步骤 1.一般ipad项目在命名的时候可以加一个HD,标明为高清版 2.设置项目的文件结构,分为home和login两个部分 3.登陆界面的 ...

最新文章

  1. pom.xml 引入 net.sf.json-lib 报错
  2. 狂赚 1227 亿!腾讯员工 2020 年人均年薪 81 万;小米员工人均年薪 45 万
  3. RabbitMQ安装与初始配置【转载】
  4. sklearn 图片相似
  5. laravel框架总结(十一) -- 集合
  6. JavaWeb监听器
  7. 详解基于 Cortex-M3 的任务调度(上)
  8. java设置图书管理系统界面设计_java 图书管理系统 界面漂亮 绝对好用
  9. 优秀!22岁读博士,26岁当教授,因为太优秀反而没人敢追?
  10. python将csv一行保存一个txt_Python读写文件(csv、txt、excel)
  11. Linux下Java连接数据库出现 Access denied for user 'root'@'localhost' (using password: YES)错误
  12. (王道408考研操作系统)第三章内存管理-第一节6-2:非连续分配管理方式之基本分页存储管理之基本地址变换机构
  13. 从零实现深度学习框架——实现Debug功能与no_grad
  14. 三菱数控CNC系统G代码M代码大全
  15. GPS测量中四参数、七参数的概念及意义
  16. 音质卓越颜值在线,五款高人气头戴式HIFI音质蓝牙耳机排名
  17. 【水汐のpython】 用python抓取外网的本子站并获取本子封面和信息
  18. XSKY新一代分布式文件系统XGFS揭秘——元数据服务
  19. MSXML2.DOMDocument
  20. 【Git配置技巧】01. 配置文件git config介绍

热门文章

  1. TLS1.3 协议的Golang 实现——ClientHello
  2. centos命令行控制电脑发出滴滴声
  3. java多线程——饥饿和公平
  4. javascript——事件默认行为
  5. 黄连解毒汤合大黄甘草方治疗口腔扁平苔藓
  6. (python)Graph_tools模块学习
  7. 多图详解教程:Eclipse 3.6连接Tomcat 7
  8. 甲骨文在中国区裁员是因为云服务在华缺少竞争力吗?
  9. 第一次阅读java,net.ServerSocket
  10. 企业级闪存弥补数据经济价值短板