Examples: Win32: Handle UTf-8 in platform window title setting. (#2164)

This commit is contained in:
omar 2018-11-05 17:37:06 +01:00
parent 52ca91ca57
commit 9ee86f22b7

View File

@ -538,9 +538,14 @@ static bool ImGui_ImplWin32_GetWindowFocus(ImGuiViewport* viewport)
static void ImGui_ImplWin32_SetWindowTitle(ImGuiViewport* viewport, const char* title) static void ImGui_ImplWin32_SetWindowTitle(ImGuiViewport* viewport, const char* title)
{ {
// ::SetWindowTextA() doesn't properly handle UTF-8 so we explicitely convert our string.
ImGuiViewportDataWin32* data = (ImGuiViewportDataWin32*)viewport->PlatformUserData; ImGuiViewportDataWin32* data = (ImGuiViewportDataWin32*)viewport->PlatformUserData;
IM_ASSERT(data->Hwnd != 0); IM_ASSERT(data->Hwnd != 0);
::SetWindowTextA(data->Hwnd, title); int n = ::MultiByteToWideChar(CP_UTF8, 0, title, -1, NULL, 0);
ImVector<wchar_t> title_w;
title_w.resize(n);
::MultiByteToWideChar(CP_UTF8, 0, title, -1, title_w.Data, n);
::SetWindowTextW(data->Hwnd, title_w.Data);
} }
static void ImGui_ImplWin32_SetWindowAlpha(ImGuiViewport* viewport, float alpha) static void ImGui_ImplWin32_SetWindowAlpha(ImGuiViewport* viewport, float alpha)