2011-07-13 50 views
0

我試圖追蹤爲什麼我的一些Windows動態創建的Windows對話框中的子控件出現故障時,用Tab鍵導航它們。在沒有其他任何東西擺弄它們的情況下,順序應該按照它們被添加到對話框中的順序來定義,但是一個特定類型的子控件始終是最後排序的。在對話框中以編程方式更改Tab鍵順序的其他方法

我知道one way重新排列它們是使用SetWindowPos(),使用hWndInsertAfter參數並且沒有設置SWP_NOZORDER標誌。我相當肯定我已經取消了這個重新排序的可能原因。

因此,除了SetWindowPos()之外,還有哪些其他的win32調用可以在對話框中重新排序現有的子控件,以便進一步引導以及僅供將來參考,

回答

2

這幾乎就是 - 在標準對話框中,tab順序只是z順序,不同之處在於您可以控制從z順序開始的位置。如果你有幾個控件總是在你的標籤順序結束時結束,那麼有些東西是操縱z順序把它們放到那裏的。

如果對話框或控件是非標準的,則Tab鍵順序可以直接由WndProc操縱。這通常是bad idea,但已知會不時發生。

+0

忘記了這個問題,但我相信問題的確出現了一些雜散代碼,它有一個'SetWindowPos()'作爲一個副作用,推動他們的z順序超過了預期。 –

相關問題