winapi - 窗口标题被截断为只有一个字母

产生原因:
创建窗口时所使用的CreateWindowEx()版本与DefWindowProc()版本不匹配,运行时使用CreateWindowExW()但回调则使用DefWindowProcA()导致解码错误。
解决方法:
判断窗口使用的编码集选择正确的方法调用。
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
if (IsWindowUnicode(hwnd)) {
return DefWindowProcW(hwnd, uMsg, wParam, lParam);
} else {
return DefWindowProcA(hwnd, uMsg, wParam, lParam);
}
}

浙公网安备 33010602011771号