忙活了半宿,终于有眉目了

比较有成就感,虽然只改了少少的几个部分,但是是很麻烦,很繁琐的活。。。

现在我的图形库使用起来更加简单方便了,类似于Windows SDK编程了,当然了,我还没有添加各种消息映射方法,指日可待。。。

本来上周打算这两周拼死拼活弄出个文件系统来的,哪怕fat,但是由于昨天测试证实我的这套库可以在 arm contex a9 上跑(由于没有文件系统,很多东西无法直接访问,所以我写的东西也无法直接在裸机上去硬盘里面找资源、所以,暂且还是用linux内核+libc+ext3,不管它了,反正以后都是要做的,现在个人能力不足,所以先用它),所以,我决定,先把图形界面库给做出来,起码能用。

我的测试环境,Fedora,初始化N个模块之后,就可以直接创建桌面了。

图像是分层的,在初始化桌面的时候,直接把图层也给初始化了。

然后就是设置了 WNDCLASS 之后,直接创建窗口,给它一个坐标,大小,还有父窗口句柄就可以了。

图层、窗口的问题,我想了两天,最终是以图层包含窗口,窗口控制图层的方式,互相操作。(图层也可以独立操作)

由于图层绑定窗口,所以,如果准备销毁所有窗口的话,可以直接销毁图层模块,所有窗口就都可以销毁了。

也可以单独只销毁一个窗口。。。

我的模块拆解还不是很好,有些模块的耦合性还是太高。。。还在继续修改中。。。

有空还是要继续再封装一下。。。

图片

一个函数创建窗口,ShowWindow 移动图层,窗口显示

图片

图片

指定父窗口上,再创建一个子窗口,使其显示

图片

图片

最后这张图。是我用来测试内存泄漏的,由于我用的内存管理模块是我自己写的,所以在destory 的时候,我清楚地知道它有没有内存泄漏。

实际上还好,没有泄露,第一个 memory = 0 是正常的时候,内存没有泄露的结果

第二个 memory = 22 ,是我在注释掉 window_destory 之后,11个结构体没有销毁,22块内存没有被释放的结果。

感觉很好。。。

其实,本来12点左右的时候就应该可以弄完的,但是由于个人疏忽,结果导致一个小错误调了一个半小时。。。哎。。。

现在已经挺有样了,我该考虑往里面加消息之类的响应函数了。。。
原文地址:https://www.cnblogs.com/suanguade/p/4038012.html