刚接触uCGUI,需要使用上下键切换对话框内子控件焦点,网上找了很多地方也没找到。
总觉得
WM_SetFocusOnPrevChild(WM_GetFocussedWindow(hWin));
WM_SetFocusOnNextChild(WM_GetFocussedWindow(hWin));
这种方式可行,先读取焦点,再设置焦点到下一个,但实际操作起来没有任何反应。
后来找到另一个函数,把回调函数改为:
WM_SetFocusOnPrevChild(WM_GetFirstChild(hWin));
WM_SetFocusOnNextChild(WM_GetFirstChild(hWin));
这两种方式,就可以切换子控件的焦点,效果和tab键一样。
但是看字面意思WM_GetFirstChild应该是返回对话框内第一个子控件的句柄,而实际上的效果是返回获得焦点的子控件句柄,真是搞不懂。。。
需要用按键切换焦点的同学,可以试试这种方法。