2013-02-06 20 views
0

我已經將combobox添加到了我的自定義listview中,並且正在嘗試將combobox的文本設置爲當前的listview子項目。listview combobox

  case CBN_SELCHANGE: 
       { 
        char txt[200]; 
        ComboBox_GetText(hCombo, txt, 256); 
        int i = SendMessage(hListView, LVM_GETHOTITEM,0, 0); 
        ListView_SetItemText(hListView, i, 2, txt); 
       } 

我做錯了什麼?

+0

您的意思是「將listview子項目文本設置爲選定的組合框文本」?因爲這就是代碼看起來像它正在做的事情。此外,您傳遞256 ComboBox_GetText()但緩衝區大小隻有200個字符。 –

回答

1

listview「hot」item是光標懸停在它上面的項目,並且僅當啓用了熱追蹤和熱選功能時。 SDK文檔LVM_GETHOTITEM做了一個糟糕的工作解釋什麼是熱門項目。 CListCtrl::GetHotItem文檔提供了更多細節。

當您從組合框中進行選擇時,光標不會懸停在列表框中的任何項目上,因此不會設置任何文本。

你可能想選擇的項目,而不是:

int i = ListView_GetNextItem(hListView, -1, LVNI_SELECTED); 

This post有更多的信息。