0
리스트 뷰에 내 구조체를 추가하려고합니다. TCHAR
필드는 정상적으로 표시되지만 숫자의 경우 빈 사각형 또는 중국어 기호가 잘못 표시됩니다. 디버거는 변환 후 올바른 문자열을 표시합니다. 내가 LVN_GETDISPINFO
콜백 항목과 하위 항목의 값을 초기화하고있어리스트 뷰에 숫자 추가하기
typedef struct {
unsigned phone_number, house, appartment;
TCHAR Name[30], Street[15], date[11];
} PHONE_DATA;
: 여기 내 구조입니다.
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'를 다루는 함수 안에서 정의되어 있습니까? 후자의 경우 함수가 반환되면 유효하지 않습니다. –