金山卫士界面源码解读及界面库分离(1)
金山对其金山卫士进行了开源,目前已经公开了6个子项目。
不过也许很多人和我一样对安全部分的功能并不感兴趣,毕竟那需要比较艰辛的工作。
但对其所运用的界面库部分可能比较感兴趣,该库是基于目前比较流行的DIRECTUI技术,非常适合于工具软件的开发,例如互联网软件及娱乐软件等。
不过目前该库是作为源代码进行调用的,使用并不方便。所以我准备将其从金山卫士的项目中分离出来,作为独立的库进行调用,并同时撰写其使用文档资料,欢迎有此同好的朋友加入。
原来希望将库做成DLL形式的,后来发现全部是模版实现,没办法导出.
所以暂时先以源码形式调用,以后有机会再看如何处理成DLL的.
要阅读金山代码需要一定的WTL编程经验。
使用方法可以先参考附件当中的样例代码,详细文档资料将陆续编写出来.
该界面库是典型的DirectUI的实现方法,相信TX的也是基本类似,不过TX肯定实现的更加深入一些,
但通过该框架,继续深入开发估计也不会太困难.
目前编写了两个预览界面,如下所示:
描述XML如下:
<layer title="sample1" width="600" height="470" appwin="1"> <header class="mainhead" width="full" height="23"> <icon src="ICON_MAIN" mce_src="ICON_MAIN" pos="5,4"/> <text class="dlgtitle" pos="25,6">样例程序1</text> <imgbtn id="60003" class="linkimage" skin="minbtn" pos="-105,1"/> <imgbtn id="60002" class="linkimage" skin="maxbtn" pos="-73,1"/> <imgbtn id="60001" class="linkimage" skin="closeonlybtn" pos="-43,1"/> </header> <body class="mainbody" width="full" height="full"> <dlg pos="0,0,-0,-0" crbg=F7FBBF> <text class="hellowordstyle" pos="50,200">hello world!</text> </dlg> </body> <footer class="mainfoot" width="full" height="23" crbg=FFB9B9> </footer> </layer>
XML如下:
<layer title="sample1" width="600" height="470" appwin="1"> <header class="mainhead" width="full" height="31"> <icon src="ICON_MAIN" mce_src="ICON_MAIN" pos="5,4"/> <text class="dlgtitle" pos="25,6">样例程序1</text> <imgbtn id="60003" class="linkimage" skin="minbtn" pos="-105,0"/> <imgbtn id="60002" class="linkimage" skin="maxbtn" pos="-79,0"/> <imgbtn id="60001" class="linkimage" skin="closeonlybtn" pos="-53,0"/> </header> <body class="mainbody" width="full" height="full"> <button id="1" class="normalbtn" pos="50,20,110,40">普通按钮</button> <text class="infostyle" pos="120,25,180">信息显示:</text> <text id="2" class="infostyle" pos="200,25">Ready</text> <hr style="dot" mce_style="dot" size=1 pos="50,50,250,50" crbg=888888 /> <check id="3" check=4 pos="50,60">复选框1</check> <check id="4" pos="50,80">复选框2</check> <hr style="dot" mce_style="dot" size=1 pos="50,100,250,100" crbg=888888 /> <radio id="5" check=4 pos="50,120">Radio按钮1</radio> <radio id="6" pos="50,140">Radio按钮2</radio> <radio id="7" pos="50,160">Radio按钮3</radio> <progress id="8" pos="50,200,250,210" min="0" max="100" value="30" showpercent="1" bgskin="progressbg" posskin="progresspos" show="1" /> <button id="9" class="normalbtn" pos="50,220,110,240">增加</button> <button id="10" class="normalbtn" pos="120,220,180,240">减少</button> <img id="11" pos="50,250" skin="loading" sub="0"/> <text class="infostyle" pos="70,250">Loading...</text> </body> <footer class="mainfoot" width="full" height="34" crbg=FFB9B9> </footer> </layer>
两个界面都是比较基础的界面,没有使用典型的TAB布局,更加深入的文章请关注后续文章.
先看各位同学看代码,有哪方面的疑惑,我再针对反馈来写其他的介绍文章.
附件下载:
http://download.csdn.net/source/3108296
金山卫士界面源码解读及界面库分离(1)相关推荐
- 金山卫士界面源码解读及界面库分离(附录) --你问我答
一.VS2005.VS2008.VS2010如何编译? 因为我的是VS2003,所以编译出来的lib好像和其他版本的会有冲突,所以请使用以上版本的同学自行编译KUILib/kscbase/kscbas ...
- 金山卫士界面源码解读及界面库分离 (5)
其实开始没有想过要写这么多篇文章介绍的,因为看到CSDN的朋友如此碰场,所以对KUI的热情并没有减少,因此不知不觉就写到了第五篇了. 本篇开始介绍比较复杂的界面应用了.界面应用介绍完成后,估计要开始整 ...
- 二开精美UI站长论坛网站源码 可切换界面
简介: 二开精美UI站长论坛网站源码 可切换界面,喜欢就下载吧. 网盘下载地址: http://kekewl.cc/QjCUMBrN0WC0 图片:
- 【小程序源码】简洁界面清爽让人非常舒服的一款短视频去印自带接口
总得来说这是一款以短视频去印为主的一款小程序源码 内含支持多平台的接口 支持短视频和图集去印 小编个人觉得界面让人看起来特别的清爽特别的舒服 没有那么多的花里胡哨的 操作非常的简单 进入主题,大家直接 ...
- 网页直播源码,实现界面左右滑动
网页直播源码,实现界面左右滑动的相关代码 @interface ViewController ()<UIPageViewControllerDataSource, UIPageViewContr ...
- Android 11.0 Settings源码分析 - 主界面加载
Android 11.0 Settings源码分析 - 主界面加载 本篇主要记录AndroidR Settings源码主界面加载流程,方便后续工作调试其流程. Settings代码路径: packag ...
- ASP.NET WPF酒店管理系统源码 WPF开发框架源码 C#框架 界面美观
ASP.NET WPF酒店管理系统源码 WPF开发框架源码 C#框架 界面美观 开发环境 :VS2013 + WPF +C# + ACCESS 采用wpf进行开发的酒店管理系统,界面相当美观,功能齐全 ...
- 仿悬赏猫任务平台完整程序源码+新UI界面/可封装APP
正文: 仿悬赏猫任务平台完整程序源码+新UI界面/可封装APP,服务器搭建环境:Linux+Centos7.0以上+宝塔,如果你是虚拟主机的话,那是无法搭建的,本人亲测的搭建环境:Nginx1.16. ...
- 做任务赚钱网站源码,H5全新界面,注册支付测试完美,适合各种做任务赚钱的手机端
源码介绍 一天一精品,深度测试,高度适用商业用途! 做任务赚钱网站源码,H5全新界面,注册支付测试完美,适合各种做任务赚钱的手机端 简单修改了一下原手机首页界面,新增下载app链接和直接h5访问,喜欢 ...
最新文章
- mysql切换系统盘命令_mysql常用命令
- 两个对于Apriltag图片处理问题讨论
- freebsd下vi的使用
- Qt工作笔记-QTreeWidget求总结点数以及此树中最多孩子的个数(非递归)
- HTML作业-潮流服装网页
- Exchange日常管理之四:简化OWA的登录
- java ftp 重命名文件_FTP服务器文件重命名
- 【经典箴言 || 人生感悟 】//wodeganwu3034 == 8. 回溯做过的事情,如Review自己曾经写过的代码或者设计,思考为什么会这么做,有没有更好的方法==
- Linux学习总结(62)——什么是堡垒机?为什么需要堡垒机?
- python怎样批量修改文件大小_使用python对文件夹下的照片进行批量修改尺寸
- Android实现播放音乐列表
- Chrome的插件安装与使用
- linux驱动面试题目汇总
- 当你的才华撑不起你的野心的时候,你就应该努力
- 《轩辕剑4》最新秘籍
- Linux内核设计与实现 第18章 调试
- MindSpore【数据集功能】无法查看数据集
- 两年工作经验程序员的迷茫
- Power PMAC运动控制器 —— 学习笔记7
- 男女比例失调,农村“光棍危机”有多严重?
热门文章
- 【IEEE 2021大奖出炉】谷歌AI掌门人Jeff Dean获冯诺依曼奖
- oracle安装时找不到启动,win7 下安装oracle 11g出现错误: 启动服务出现错误 找不到服务OracleMTSRecoveryService...
- Linux 什么是用户和用户组;创建用户、组和组成员资格;创建文件或目录并设置权限
- 怎么用python做答题_python实现用户答题功能
- 常用数学符号的读法及其含义
- 【二次型】——线性代数高清手写笔记——如桃花来
- 基于轻量级YOLO模型开发构建大疆无人机检测系统
- Unity3D学习笔记(4)—— 牧师和魔鬼游戏
- 【CubeMX配置STM32使用360°旋转编码器(KY-040)】
- pytorch实现 残差网络 ResNet18 CIFAR-10 分类 计算top1-ACC,top3-ACC