0
私はlistviewを初期化する関数とリストビューにエントリを追加する関数の2つを持っています。列情報を保持する構造体を作成しました。私は、列の構造体ListViewのサブアイテムがC++のWindows APIを使用して表示されない
static struct LISTVIEW_COLUMN lvNames[] =
{
{ TEXT("Name"), 150 },
{ TEXT("Last"), 125 }
};
を作成していますどのようにこれは
はstruct LISTVIEW_COLUMN
{
const TCHAR * Title;
int Width;
};
それから私は、次のような機能が定義されています。
void InitListView(HWND hListView, LISTVIEW_COLUMN * lvColumn, int nCols)
{
ListView_SetExtendedListViewStyle(hListView, LVS_EX_FULLROWSELECT);
// Create the columns
for (int col = 0; col < nCols; col++) {
LVCOLUMN lvc;
lvc.pszText = (TCHAR *)lvColumn[col].Title;
lvc.cx = lvColumn[col].Width;
lvc.mask = LVCF_TEXT | LVCF_WIDTH;
ListView_InsertColumn(hListView, col, &lvc);
}
}
void NetPCAddListViewRow(HWND hListView, TCHAR * name, TCHAR * lastName)
{
LVITEM lvItem;
// Add item (name)
lvItem.mask = LVIF_TEXT | LVIF_IMAGE;
lvItem.iItem = 0;
lvItem.iSubItem = 0;
lvItem.iImage = 0;
lvItem.pszText = (TCHAR *)name;
lvItem.iItem = ListView_InsertItem(hListView, &lvItem);
// Just using "testing" right now to see it as a subitem
lvItem.iSubItem += 1;
lvItem.pszText = _T("testing");
ListView_SetItem(hListView, &lvItem);
}
列 はうまく表示と最初の列「名前は」に追加されますが、私は、その列のサブアイテムとして表示するために何かを得るカント?助けてくれてありがとう!
'LVITEM'構造体を初期化していないことは間違いありません。(理論的には' mask'フィールドのためにこれは問題ではありませんが)。 'ListView_SetItemText()'はサブ項目のテキストを設定することができますか?あなたが[MCVE]を投稿できるかどうかが分かります。 –
うーん、私はListView_SetItemText()と同じものを使ってみました。私はListView_SetItem()の戻り値をチェックし、 '0'を返しています。なぜ私はInsertItemがうまく動作するときに失敗するだろうか分からない?私は小さな例を思いついてそれを再現できるかどうかを見ていきます。 – trevercodes
テストと同様に 'LVITEM'を0に初期化してみてください。 –