我的简陋界面库的模块组成

目前界面不大,才几千行代码,所以我分割的也不是特别详细。

个人感觉,写这些东西,还是面向对象的思想比较好,所以,模块的组织方式,都是以面向对象的思想组织起来的。

我英语很差,没把这些玩意写成拼音,我很庆幸。

这套库现在的当务之急,就是寻找一个有效的同步或者互斥的方案,立刻修改为多线程安全版本,不然的话,以后修改的难度会大大增加。

从后往前说吧,

window.h 窗口模块,所有和窗口有关的东西,都在它里面处理,当然了,凡是能看到的东西都是窗口,所以都在它里面处理,

themeui.h 皮肤库模块,凡是和皮肤库相关的事情,都是它来作,包括加载皮肤,替换皮肤,等等(某窗口自绘界面它不管),

sheet.h 图层功能模块,这里比较复杂,是对所有图层的处理,凡是和图层相关的都归它管,所以这里很麻烦,

rect.h 很简单的矩形功能,帮助窗口模块定位置

memory.h 内存分配模块,我在这里实现内存管理,因为我不知道该如何有效地管理内存分配,所以我同时借鉴了Windows debug下内存泄漏的查询方法以及Linux下的brk内存管理方法(由于目前要么直接使用物理内存,要么使用应用程序的虚拟内存,且缺页机制的实现非软件实现,所以没必要也没有可能现在写内存分页机制)

list.h 双向链表模块,实现方法,纯纯地借鉴了Linux内核链表和Windows驱动链表,我就发现,Linux内核链表和Windows驱动链表实现思路基本上完全相同,为啥会出这种情况呢,难道是高手的共同思路么,还是怎么个意思,真的很神奇

key.h 实现键盘输入信息转换的模块,本来在里面准备写键盘的那些按键的功能的,但是最终我还没写,因为。。。。我想等有了同步与互斥的方案之后,整体重构的时候再说。

font.h 这个模块实现了文字功能,可以接受不同的字体文件,不同的字体信息,然后提供给上层来使用文字功能,提供各种文字属性。其实最开始的时候,我想使用Windows的TTF字体的,但是由于我没有研究过TTF字体,所以起码要找个路子了解一下吧,网上的各种资料各种找,结果,各种找不到,各种资料,各种说明,都明确表示,TTF字体是被包含在GDI部分,由HDC等等东西来解析的,于是,我不信,于是,我去逆微软的造字程序eudcedit.exe,结果,事实就是那么回事,字体会在HDC里面被处理,结果我放弃了,自己搞一套字体玩了。所以,现在我用的方法,自己弄得纯点阵做法,麻烦得要死,但是没办法。

filesys.h 这个是我准备做文件处理的模块,由于现在缺少一个可行的磁盘文件系统,所以,这个模块目前是空的,Linux下直接转接到了标准库里,ARM裸机下,我是直接转接到了内存中指定的位置

fb_draw.h 这个,是Linux下的 fb 画图功能支持文件,ARM裸机下,完全可以不用它,直接把画图的位置锁定到一块显存

draw.h 最复杂的,应该就是它了,而且我认为我写的最差的就是它,因为它里面的功能最杂最乱,这个画图功能里面,包含了画各种图形,圆形、矩形,各种线条,以及图片,图片的放大、缩小计算,都在这里完成,所以,我感觉,它的压力太大了,估计大多时间都是它在忙。

desktop.h 这个是桌面的独立模块,当初把它独立出来是因为,虽然它也是个窗口,但是所有窗口中只有它是最特殊的,所有窗口都可以销毁,就它不可以销毁,它代表了整个可显示区域的大小,它的宽度、高度就是所有可显示部分的宽度、高度,所有画图功能的基础都是它提供的,最终都是在它上面把东西呈现出来。这点,有点类似于windows XP里 explorer.exe 都关了,但是还有个蓝色的东西铺满了显示器,还有这么个东西没关,它如果关掉了,操作系统可能就是关机了。

debug.h 最后这个东西,只是便于调试。

其实,我现在发现,我写的很差,封装的还不够好,但是我不知道我应该如何正确地封装,

现在的情况:

图层配合窗口,再配合画图模块,根据矩形模块定位之后才能把界面画出来

画图模块配合字体模块才能显示文字

这里记录得很详细,希望以后我忘记了的时候,能想起到这里来看。

时间: 2024-10-24 12:22:05

我的简陋界面库的模块组成的相关文章

C++界面库(十几种,很全),当然Delphier有FMX

刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG  Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得.不敢藏私,希望和一些新手朋友们分享交流. 一.  开源C++界面库 1.RingSdk Ringsdk是CSDN上一个前辈自己写的界面库,这个界面库很轻而易举实现QQ2009的界面效果.链接见 http://blog.csdn.net/rin

MFC界面库

http://blog.csdn.net/cddchina/article/details/38759485 刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG  Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得.不敢藏私,希望和一些新手朋友们分享交流. 一.  开源C++界面库 1.RingSdk Ringsdk是CSDN上一个前辈自己写的界

C++界面库

刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG  Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得.不敢藏私,希望和一些新手朋友们分享交流. 一.  开源C++界面库 1.RingSdk Ringsdk是CSDN上一个前辈自己写的界面库,这个界面库很轻而易举实现QQ2009的界面效果.链接见 http://blog.csdn.net/rin

计算机职称考试题库Internet模块操作练习模拟试题(一)

1.请为当前计算机添加连接到com1口的标准56000 bps调制解调器设备,要求不检测当前连接设备. 当前界面:开始à控制面板 方法一: 打开[电话和调整解调器选项]à[调整解调器]选项卡à[添加]按钮à选中[不要检测我的调制解调器设备……]à下一步à型号:标准 56000 bps 调制解调器à下一步à选定的端口:com1à下一步à完成 方法二: 添加新硬件à下一步à选择[是,我已经连接了此硬件]à下一步à列表拉到最后选择[添加新的硬件设备]à下一步à选择[安装我手动从列表选择的硬件(高级)]

常见MFC UI界面库[转]

Xtrme toolkit,BCGControlBar,SkinMagic,AppFace,Skin++,Uskin++,SYGUI,LibUIDK,GuiToolkit,GardenUI等等,除了后两种一个是开源,一个是免费的外,其余的都是收费的. The Ultimate Toolbox http://www.codeproject.com/KB/MFC/UltimateToolbox.aspx GuiToolkit(开源,mfc扩展框架,类似Visual Studio 2003风格)htt

C++界面库大全2013

 http://blog.csdn.net/chenlycly/article/details/42718799 C++界面库大全2013 刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG  Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得.不敢藏私,希望和一些新手朋友们分享交流. 一.开源C++界面库 1.RingSdk Ringsdk

图形界面库Windows Forms MFC WTL WxWidgets Qt GTK 综合比较

图形界面库Windows Forms. MFC.WTL. WxWidgets.Qt.GTK 综合比较见下表: 总结: GTK+主要用在X Window上,整个设计的架构和许多概念和MFC以及一般 Windows 上的程序开发大异其趣,入门门槛较高,而且最主要的特色是,它用不具有物件功能的纯C 语言,模拟物件导向.所以写起来比较复杂艰涩,而且充满大量巨集,使用和除错都不是很容易,但优点则是可以用C,不需C++,如果和Win32 SDK比较,不会难学多少,缺点是不易上手使用,而且文件比较缺,架构又非

MFC BCGCBProInc.h : No such s file or dictionary. 解决方案:安装BGB界面库

BCGCBProInc.h : No such s file or dictionary. 解决方案:安装BGB界面库 一.   关于BCGControlBar. BCGControlBar是一个基于MFC的扩展库,您可以通过完全的用户化操作构成一些类似于Microsoft Office 2000/XP/2003和Microsoft Visual Studio.NET的应用程序(用户工具栏.菜单.键盘等等).BCGControlBar库包含了大约150多个经过精心设计,测试和具有完备文档的MFC

Win32API界面库 - Project wheels 工程基础部分完成

离上次发博文过去了好久,先是要忙一个机器人的项目,然后就是部门的事情和考试周复习,然后就到了考试周,趁着复习的间隙,拾起了寒假时候抄的界面库,修掉了从前的bug. bug1 控件显示问题 当初抄这个库的时候就对排版部分的代码一头雾水,借着这次调bug,稍微理清了排版部分代码的意图.界面的排版是动态进行的,用户用placement命名空间的各种排版元素构造出整个排版的结构布局,然后调用WinForm对象的ApplyPlacement成员,把前面构造好的布局传给它,函数内部递归地读取结构对象的大小和