2010-01-14 21 views
0

我有一個windows gui內置在Microsoft Visual C++中,當用戶執行一組特定的操作時,從小部件移動到小部件的鍵盤Tab將停止工作。Keyboard Tab Tab停止在Windows GUI上工作

簡而言之,有兩個列表框中添加和刪除按鈕。在列表框#1中選擇一行並按下添加按鈕將從列表框#1中移除對象並將其移動到列表框2。我看到的問題是,由於選項卡焦點位於添加按鈕上,因此當添加回調完成時(因爲當前沒有選擇列表框1中的行),鍵盤選項卡功能會消失。

我想能夠重新設置標籤焦點到列表框1(但不是特定行的選擇)。任何方式來做到這一點?我相信我是作爲標準模態對話框運行的。

+1

接口的這種風格總是感覺笨重給我。您是否考慮過使用LVS_EX_CHECKBOXES進行單一列表視圖,因此您只需檢查項目開啓/關閉? http://www.neowin.net/forum/index.php?showtopic=819824 – HostileFork 2010-01-15 00:16:01

+0

同意......這可能是後來的「增強」。 (我繼承了這個接口) – Holograham 2010-01-15 04:08:31

回答

2

如果我理解正確,您只需要將焦點設置回其中一個列表框。由於這是在一個對話框,而不是調用SetFocusThe Old New Thing建議您將消息發送到列表框中的hWnd要做到這一點:

void SetDialogFocus(HWND hdlg, HWND hwndControl) 
{ 
    SendMessage(hdlg, WM_NEXTDLGCTL, (WPARAM)hwndControl, TRUE); 
} 
+0

是啊,看起來像它會工作...讓我給它一個去。關於舊新事物的解釋看起來很穩固。 – Holograham 2010-01-15 04:01:59

+0

工作...謝謝! – Holograham 2010-01-15 14:54:40