мой код для создания строки состояния находится здесь:
int statwidths[] = {300, -1}; HWND hStatus; hStatus = GetDlgItem(hWnd, IDC_MAIN_STATUS); SendMessage(hStatus, WM_SIZE, 0, 0); hStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 20, 20, 20, 5, hWnd, (HMENU)IDC_MAIN_STATUS, GetModuleHandle(NULL), NULL); SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths); //SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Loading things..."); SetWindowText(hStatus, (LPCWSTR)"sdgsdfgd");
любой из нижних способов установить текст строки состояния просто дает искаженные китайские символы
Существует проблема со следующей строкой
SetWindowText(hStatus, (LPCWSTR)"sdgsdfgd");
Так должно быть
SetWindowTextW(hStatus, L"sdgsdfgd");
Также все это зависит от того, является ли окно UNICODE или ANSI.
Других решений пока нет …