0
我想添加顯示我的結構在ListView。 TCHAR
字段通常顯示,但是對於數字它顯示錯誤的空矩形或中國符號。調試器在轉換後顯示正確的字符串。 這裏是我的結構:添加數字到ListView
typedef struct {
unsigned phone_number, house, appartment;
TCHAR Name[30], Street[15], date[11];
} PHONE_DATA;
我初始化項目和子項目值與LVN_GETDISPINFO
回調。
TCHAR wStr[16];
//other code
switch (((LPNMHDR) lParam)->code)
{
case LVN_GETDISPINFO:
plvdi = (NMLVDISPINFO*)lParam;
entry = Get(&list, plvdi->item.iItem);
switch (plvdi->item.iSubItem)
{
case 0:
plvdi->item.pszText = entry->data.Name;
break;
case 1:
_itow(entry->data.phone_number, wStr, 10);
plvdi->item.pszText = wStr;
break;
case 2:
plvdi->item.pszText = entry->data.Street;
break;
case 3:
_itow(entry->data.house, wStr, 10);
plvdi->item.pszText = wStr;
break;
case 4:
_itow(entry->data.appartment, wStr, 10);
plvdi->item.pszText = wStr;
break;
case 5:
plvdi->item.pszText = entry->data.date;
break;
default:
break;
}
break;
}
而且它的外觀在我的列表視圖:
相同的轉換我用我的編輯形式,在文本框中正確顯示的。
每次打電話_itow您使用的是相同的緩衝 - WSTR。所以它被覆蓋。你甚至有可能在其他地方覆蓋它。 – Trenin
但調試器顯示正確的字符串。我試圖在使用前沖洗緩衝區,沒有任何改變。 – hmnzr
是'TCHAR WSTR [16];'一個全局變量,或者它的功能處理'WM_NOTIFY'內限定?如果是後者,則該函數返回後無效。 –