src/control目录里面全部是MiniGUI内部自定义的控件,主要包括Button,Combox,Edit等。
对于每个控件的内部实现细节,我认为没有必要去深究,因为我们在实际的嵌入式应用中都不会用到这些内部定义的控件,我们需要的是自定义功能和外观的控件。所以,我们的重点放在控件实现的方法和控件的管理上面。
在MiniGUI中,每一个控件的实现都有两个部分来组成,分别是控件的注册和消息处理。
在控件注册的时候,会将控件的基本信息填写到结构体中,其中,最重要的一个成员就是控件的消息处理函数。在消息处理函数中的不同实现决定了控件的外观和功能。一个控件的实现结构如下:
下面开始说几个重要的概念:
1.在MIniGUI中,控件也是一种窗口,窗口分为主窗口和控件。因为创建控件的时候调用的是createwindow函数来创建控件实例的
2.任何一种类型的控件,必须先注册,后使用,也就是说你必须先调用RegisterButtonControl控件来向系统注册,然后才能用createwidnow来创建控件的实例。建议大家再系统起来的时候就调用RegisterButtonControl函数来向系统注册。
3.既然控件都是窗口的一种了,所以控件记录控件的结构体CONTROL和主窗口的结构体MAINWIN在前面的很多成员变量都是一样的大小和名称,因此在必要的时候可以用强制数据类型转换来实现。
好了,参照我上面的结构,你可以自己定制你需要的控件了...:)
作者:光脚脚 qq:1042077267(欢迎大家跟我联系一起讨论)
转载请注明出处。