剛接觸uCGUI,需要使用上下鍵切換對話框內子控件焦點,網上找了很多地方也沒找到。
總覺得
WM_SetFocusOnPrevChild(WM_GetFocussedWindow(hWin));
WM_SetFocusOnNextChild(WM_GetFocussedWindow(hWin));
這種方式可行,先讀取焦點,再設置焦點到下一個,但實際操作起來沒有任何反應。
後來找到另一個函數,把回調函數改爲:
WM_SetFocusOnPrevChild(WM_GetFirstChild(hWin));
WM_SetFocusOnNextChild(WM_GetFirstChild(hWin));
這兩種方式,就可以切換子控件的焦點,效果和tab鍵一樣。
但是看字面意思WM_GetFirstChild應該是返回對話框內第一個子控件的句柄,而實際上的效果是返回獲得焦點的子控件句柄,真是搞不懂。。。
需要用按鍵切換焦點的同學,可以試試這種方法。