首页 > 代码库 > uCGUI窗口操作要点
uCGUI窗口操作要点
1、 创建一个窗口的时候,会给此窗口发送“创建”消息,从而执行它的回到函数;如果创建窗口的状态标志为“可视(WM_CF_SHOW)”,那么在执行GUI_Exec函数时会对窗口进行重绘。如果创建窗口的标志带有WM_CF_ACTIVATE,那么这个窗口在创建的时候也会被激活,否则不激活。
2、 WM_SendMessage()发送消息的函数,本身也是执行消息的函数(通过调用接收方的回调函数),所以调用发送消息的函数发送的消息只可能被处理一次
3、 WM_SelectWindow()选中窗口的意思是:接下来操作(画画、写字)的对象是选中的窗口
4、 删除一个窗口的时候,会给它父亲发送“孩子被删除”的消息,也会给删除窗口自己发送“删除消息”,删除一个窗口的时候会把它的孩子依次删除(递归调用)删除一个窗口的时候,也会使与之有黏贴关系的窗口(比方说其父窗口)设置为无效,将来执行WM_Exec()时对这些窗口进行重绘。
5、 重绘的操作,虽然最后WM_Exec()也给窗口发送重绘消息进行的。但是,实际上重绘不是立即执行的,用户为了使窗口重绘。可以使窗口变为无效,而且无效窗口总数加1,来实现在执行GUI_Exec()或者WM_Exec()时对窗口的重绘。
6、 WM_SetBkWindowColor()设置桌面背景,也会对桌面进行重绘
7、 如果不设置桌面窗口背景,桌面是不可能被重绘的。这是因为桌面窗口默认的背景颜色是无效的颜色。
8、 GUI_Clear()函数,使用时清除的是当前激活的窗口。GUI_Clear()函数是底层的GUI显示函数,用户调用马上就能见到效果。它设置的颜色取自全局变量GUI_Context中的BkColor。
9、 GUI_Exec()或者WM_Exec()会完成所有的重绘工作,才退出函数的执行。 WM_SelectWindow()可以给窗口发送重绘消息,而且这种重绘立即被执行。GUI_Exec或者WM_Exec(),它们在重绘的时候按照从桌面依次到高级别的窗口,最后到顶层窗口的顺序进行重绘。因此,重绘的过程中,肯定会不断的激活不同的窗口,而且会不断的更改全局变量GUI_Context其他的参数值。在执行完GUI_Exec或者WM_Exec()的时候,GUI_Context还能恢复到执行之前的状态,这也是我们希望看到的。
10、 桌面是最底层的窗口,依次向上是高级的窗口
11、 创建桌面窗口的时候,默认的是需要对其重绘的。
12、 WM_SetCallback设置窗口的回调函数,会使窗口无效,引起窗口的重绘。
13、WM_ShowWindow()会使当前窗口无效,并设置窗口标志为可视“WM_SF_ISVIS”。
14、WM_HideWindow()会使其父亲和其同胞无效,并将其窗口可视标志“WM_SF_ISVIS”清除。
15、 GUI_TM_NORMAL、GUI_TM_REV、GUI_TM_TRANS这些模式都不会引起对像素颜色的读取。而GUI_TM_XOR会对像素的颜色进行读取。
16、创建一个列表框,默认的选择是第一行,对应的选项序号是0。一个列表框对应的是一个窗口,但是它占用的动态内存却是数个32字节。
uCGUI窗口操作要点