问题描述:窗口和view都有textbox时,都可以获得焦点. 我觉得应当是界面上应当只有一个控件获得焦点.
```
static rtgui_win_t *win1;
/创建非模态window/
void create_new_window1(rtgui_widget_t widget)
{
rtgui_textbox_t text;
rtgui_toplevel_t *parent;
rtgui_rect_t rect_label,rect_size = {0, 0, 240, 120};
parent = RTGUI_TOPLEVEL(rtgui_widget_get_toplevel(widget));
/ 创建一个窗口,风格为无标题及无边框 /
win1 = rtgui_win_create(parent,
“Table”, &rect_size, RTGUI_WIN_STYLE_NO_TITLE);
rtgui_rect_moveto(&rect_size, 0, 45);
rtgui_win_set_rect(win1,&rect_size);
rect_label.x1=5;
rect_label.y1=rect_size.y1;
rect_label.y2=rect_label.y1+20;
text = rtgui_textbox_create(“”,RTGUI_TEXTBOX_SINGLE);
rtgui_widget_set_rect(RTGUI_WIDGET(text), &rect_label);
rtgui_container_add_child(RTGUI_CONTAINER(win1), RTGUI_WIDGET(text));
/ 非模态显示窗口 /
rtgui_win_show(win1, RT_FALSE);
}
rtgui_view_t test_focus(rtgui_workbench_t workbench)
{
rtgui_view_t view1;
rtgui_button_t button;
rtgui_textbox_t* text;
rtgui_rect_t widget_rect;
view1 = demo_view(workbench, “test”);
demo_view_get_rect(view1, &widget_rect);
widget_rect.x1 = 5;
widget_rect.x2 = widget_rect.x1 + 50;
widget_rect.y1 = 170;
widget_rect.y2 = widget_rect.y1 + 20;
button = rtgui_button_create(“窗口”);
rtgui_widget_set_rect(RTGUI_WIDGET(button), &widget_rect);
rtgui_container_add_child(RTGUI_CONTAINER(view1), RTGUI_WIDGET(button));
rtgui_button_set_onbutton(button, create_new_window1);
widget_rect.x1 = widget_rect.x2;
widget_rect.x2 += 50;
text = rtgui_textbox_create(“”,RTGUI_TEXTBOX_SINGLE);
rtgui_widget_set_rect(RTGUI_WIDGET(text), &widget_rect);
rtgui_container_add_child(RTGUI_CONTAINER(view1), RTGUI_WIDGET(text));
return view1;
}
```测试代码如下: