GUI经验总结(待续)

 短期内对GUI的性能有一个了解,结论是,假如不去深入熟悉源码,GUI基本不可能用好的。

    在GUI的源码中,存在很多Bug,或者说不成熟。假如使用它来做一些应用,还是有一定风险。当然,用来学习问题不大。

    因为偶需要的并不是标准对话框界面,只要使用到窗体、按钮、文字显示等,所以要对Dialog控件进行裁减。
 
    熟悉过程中,发现的主要问题如下:
    1、让触摸屏正常工作还需要做很多工作。触摸屏驱动框架过于简化,很难做的稳定可靠,不如ucLinux触摸屏驱动效率高。
    2、Dialog内部很多函数没有实现,比如多窗体支持等,需要完善。
    3、GUI的色彩定义在说明书中是RGB,研究后发现并不是RGB,有点像BGR,说它像,因为跟网页等通常使用的256色定义不同(也许只是因为色彩命名差异)。也许是算法不同,这一点需要看源代码。
    4、按钮无法使之无效,似乎复选框可以。调用WM_InvalidateWindow()函数没有作用,WM_DisableWindow()也不起作用。此功能需要自己完成。

    因为Dialog无法定制,无法把标题栏去掉,不得已只好重新写一个类似窗体结构。由于时间紧迫,对FRAMEWIN窗体源码了解不深,把这部分功能做好 还是有一定难度。我只是增加了一个WINDOW_CreateIndirect()函数。这个函数很简单,只是创建了一个新的window作为控件的父窗 体。
    接下来发现新建的窗体的背景色没办法修改。WM_SetDesktopColor()函数只是把底层窗口的背景色修改,GUI_SetColor()修改 前景色,使用DIALOG_SetBkColor()也不能达到目的。研究源码和例程之后,发现可以调用GUI_SetBkColor()来实现。

点赞