问题1)view 上有一个checkbox,我勾选它的时候,设置它的背景色为红色。然后想重绘它。其他控件不变。这个如何实现它自己的重绘事件呢?
问题2)window上有一个box,box包含很多label,textbox控件。我单击view上的按钮改变box的rect.y1,rect.y2坐标。然后我想让box自己重绘,实现所有控件的位置重新排列,这个可以办到吗?
rtgui_widget_update
我昨晚试了一下,是可以用rtgui_widget_update实现重绘。但是现在又碰到一个问题。
我重绘的是window控件。为什么超过window定义的区域也可以见到呢。
比如window定义为(0,50)~(240,100). 有一个checkbox控件定义为(0,100)~(100,120)。
第一次创建window,并把它加上去,这个checkbox是不可见的。但是第二次用
rtgui_widget_update重绘这个window的时候,它又可见了。
在demo_workbench.c中添加该view
demo_view_dc(workbench);
wind_test(workbench); ——-下面的view都屏避掉
在demo_view.c中修改demo_view_next函数
void demo_view_next(struct rtgui_widget widget, rtgui_event_t event)
{
if (demo_view_current + 1< demo_view_number)
{
demo_view_current ++;
rtgui_view_show(demo_view_list[demo_view_current], RT_FALSE);
}
这样运行就看到checkbox可以脱离window显示。