|
楼主 |
发表于 2010-12-11 09:36:54
|
显示全部楼层
回复【1楼】ffxz
-----------------------------------------------------------------------
我在VIEW的handler中获取toplevel后发现其焦点控件是VIEW本身
TopLevel=RTGUI_CONTAINER(widget->toplevel);
if (TopLevel->focused == widget) return ;//本身具有焦点
调试发现VIEW有焦点
改为
TopLevel=RTGUI_CONTAINER(widget);
if (TopLevel->focused == widget) return ;//本身具有焦点
焦点控件就为界面上的textbox控件了
初始化时先让VIEW获得了焦点,然后又让textbox获得了控件
rtgui_workbench_add_view(workbench, home_view);
/* this view can be focused */
RTGUI_WIDGET(home_view)->flag |= RTGUI_WIDGET_FLAG_FOCUSABLE;
/* set widget focus */
rtgui_widget_focus(RTGUI_WIDGET(home_view));
RTGUI_WIDGET(test_textbox1)->flag |= RTGUI_WIDGET_FLAG_FOCUSABLE;
rtgui_container_add_child(RTGUI_CONTAINER(home_view), RTGUI_WIDGET(test_textbox1));
rtgui_widget_focus(RTGUI_WIDGET(test_textbox1));
是不是程序有问题? |
|