hga010手机版网址

SkinBeauty 相关变更VCKBASE

十月 22nd, 2018  |  hga010皇冠手机版

 

VC模仿超炫QQ界面的贯彻
作者:Elio

源代码下载

  关键字: VC++ QQ界面 换肤 自绘控件 透明窗口 Vista样式 免费开发包 源码
模拟

  随着计算机技术之提高和推广,计算机逐渐走上前了众人的日常生活当中。人们透过它们来学习,娱乐,信息的互相等等.并且对许要而老的多种多样的软件出品之
要求呢闹矣必然的加强。除了基本功能外,对软件易操作性,界面的美观性等为是一个成软件必不可少的重点元素。美观个性化的界面是一个软件吸引和留住用户
的国粹之一,通讯软件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)实现均等拟皮肤包含多体的窗口界面,按钮样式等。这是上述任何一个产品少似乎还不可知提供的。而我辈这项目的需为发生其一(主界面,聊天对话框窗口不同,并产生多单不同特点的按钮等细节问题)。

由此了前方的简易描述,接下去将启实际的兑现了。先押一下对象效果,如图:

hga010皇冠手机版 1

hga010皇冠手机版 2

0.备选干活:

  用产品相应的肌肤编辑软件SkinBeautyStudio编辑好界面各因素皮肤,一般好看的界面都是由图片绘制所成(这里是暨其主站下载就部分
BeautyQQ.bsk皮肤)。将下充斥好的换肤开发库(SkinBeauty.dll,SkinBeauty.lib)和接口文件
SkinBeautyExport.h准备好,下载地址在本文章后发生让出,或自己及www.afe-soft.com上和谐下载。

1.白手起家项目:

开辟VC++,利用向导帮助建立基于MFC的对话框项目BeautyQQ,过程如下
New-> Projects -> MFC AppWizard(exe) -> Dialoag based
其他默认完成建立。简单的修改一下对话框的轻重,标题栏名称等,编译一下,如图:

hga010皇冠手机版 3

运作一下为主正常,这就算终于完成了路之创工作了。

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)));     
   ......
}

  从者能,我们先行用GetModuleFileName()获取加载皮肤之不二法门,然后调用提供的函数接口SkinLoad()实现换肤库的加载。而SkinLoad()函数的参数为正如便于了解,就是皮肤所谓位置的路。它的原型可以当头文件找到:

//load the skin with a skin-file from a path.
//[IN]:absolute file path 
BOOL SkinLoad(char* szSkinPath);

至此,已经完成换肤库的加载了。运行看效果是勿是痴心妄想了好多,呵呵。
顺手说一下底是,官方声明,调用完SkinLoad()载入后,在脱离程序前并不需要调用任何卸载函数,换肤引擎将自动实现库的销毁拆装等操作,除非您程序运行中途意愿性的纪念去丢皮肤外观。

  现在已完成QQ主界面的外观实现与美化了,接下去我们透过VC向导添加一个会话框资源并加上相应的近乎,命名CtalkDlg类,其效果是聊对话框
的对话窗口,也不怕是当我们双击用户列表的里一个用户后弹出底聊天窗口.当我们运行的时刻发现,它的窗口背景外观除了大小他,其它跟主界面是截然一样的,
怎么惩罚也?没有干,因为在皮文件中早已编制和准备好外一样外观的窗口皮肤资源,我们唯有需要拿这聊天对话框创建后以及此皮肤资源绑定则只是,重载这个
CtalkDlg类的初始化函数,并丰富绑定代码,具体贯彻如下:

BOOL CTalkDlg::OnInitDialog() 
{
 CDialog::OnInitDialog();


   //将该对话框绑定某资源ID,让其绘制根据该资源定义来实现
  //bind with the predefine res
  BindRes2CtrlbyHWND(103,m_hWnd);
    ......
}

  上述代码功能是拿先期在beautyQQ.bak皮肤里定义好之对话框图像资源及对话框绑定,资源间ID号为103(注意,该资源编号是编制皮肤
的时候就是由用户定义之,一般由101初始)。从上面的BindRes2CtrlbyHWND()函数名称与参数可分晓,功能是拿窗口句柄为
m_hWnd的窗口外观和资源Id为103之皮资源绑定.于是,这即贯彻了不同窗口可以来得不同之背景皮肤了。
  跟这个效应相互仿佛的是,我们聊天对话框来几许单按钮,它们有着不雷同的外观,按理也应当绑定指定要的外观皮肤资源,于是,我们得采取以下函数接口实现:

BindRes2CtrlbyID(106,IDC_BUTTON_TALK_SERACH);

 
 以上语句是用肌肤资源ID为106底皮层及程序资源ID为IDC_BUTTON_TALK_SERACH的摸按钮相绑定,该函数接口可以于程序运行前
面预先将某控件与指定的皮层资源彼此绑定,提供的是控件资源ID与皮肤资源ID。当然为可以据此词柄的法子绑定,跟前面的
BindRes2CtrlbyHWND()不同的是,大多数对话框窗口于运行期间从不定点的控件资源ID的定义(不象button,edit等控件),所
以只能采取实时句柄HWND的款式展开绑定。前面两单资源绑定函数的原型在SkinBeautyExport.h头文件中可以找到,如下:

//bind a skin_resource with a Ctrl by Ctrl ID or by handle
//[IN]:user resource define in the skin-file; the ID/handle of Ctrl to be set 
void BindRes2CtrlbyID(int nUserResID,DWORD dwCtrlID);
BOOL BindRes2CtrlbyHWND(int nUserResID,HWND hWnd);

  好,经过地方的描述后,对照附件的源码,对于QQ的食谱,用户列表等落实都休是那么困难了,用户只有需象正常的菜系与ListCtrl那样使用就可以了,运行的时节换肤库自动会将她们之外观美化起来。读者可生充斥源码,看它们是怎绑定实现的。
基本所有复杂而超眩的档次就于得向导创建后调用少到三独第三正接口函数中落成。坦白说,整个换肤开发包供的接口函数相当简单,就10基本上只,功能以及行使
方法亦凡一定清楚,相信不管需多钻研就清楚如何使;如果对立即几乎只接口函数有啊疑难,可以参照官方提供的出文档说明书。
  其实上面的事例跟店提供的源码类似,只是自我用该促成过程解释下而已,希望对做界面的恋人发生参考作用。开始自我是对准使用企业界面换肤产品的一言一行比
反感,后来意识功能与效率还凑合,就到底了,并于协议家之鞭策下写了首文章帮他们介绍于读者认知,换取了一个局版的开发包。算是“个人利益跟群众利益结
合”吧,的确是的,大家好测试。不过自己想对境内一些用户不极端满意的凡,目前SkinBeauty的采用文档是英文著写的,暂时无中文版本,这对准片
不动E文的对象发接触未便于罢了。
弄界面开发的,建议大多下充斥几独换肤产品看那属性,如资源占用,做到的作用,键盘操作性等。

结语

  以更为强调效率的时,不妨设想使用可信赖的老三正控件,将混乱而稳定的贯彻丢掉给它们来处理,深入产品功效业务,站在别人的肩膀上,再优化自身,从而走得重复胜似再次远。

参考文章

  • 运换肤开发包SkinBeauty开发商主页:www.afe-soft.com
  • 开发包(免费版本)下载地址:
    http://www.afe-soft.com/downloadcenter.htm
  • 出文档下载地址: http://www.afe-soft.com/downloadcenter.htm
    (免费版本是管Logo,无弹出窗口限制的,这点可叫一些做共享的恋人点福利了,估计,当然,如果只要性能好,不全受限还是需要获得企业版了..天下没有免费之午餐,天下乌鸦一般黑?…呵呵,还是未伤得最为狠心了)

来源:http://www.vckbase.com/document/viewdoc/?id=1841

 

 VC 6.0 编译 cannot open file “uafxcwd.lib”

 

 

多年来当编译一个软件源代码的当儿起一个问题

cannot open file “uafxcwd.lib”

自己在网上收集有关的化解方案.

1.

菜单project-》settnigs-》link-》Object/Library  
modules:中添加uafxcwd.lib   
 2.
  如果还是挺,选择vc的全装,而休是默认安装

如若是unicode,可以据此vc盘修复一下vc,钩选相关项。

自好是拿vc盘里面的lib复制到vc mfc lib里面如休是重新安装

启写了千篇一律篇没封存 这是第二坏写

附件中是急需的”uafxcwd.lib”文件

附件下充斥:
  hga010皇冠手机版 4uafxcwd.lib
  hga010皇冠手机版 5uafxcwd.lib

 

 

Your Comments

近期评论

    功能


    网站地图xml地图