c++ - 为什么我不能在 Win32 中启用 unicode Edit 控件?

标签 c++ winapi unicode

我将 Character set 设置为 Use Unicode Character Set 但是当显示窗口时,它的标题仍然是方 block 字符。我该如何解决?谢谢!

enter image description here

#include <windows.h>

LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShowCmd)
{
    WNDCLASSEX wClass;
    ZeroMemory(&wClass, sizeof(WNDCLASSEX));
    wClass.cbClsExtra = NULL;
    wClass.cbSize = sizeof(WNDCLASSEX);
    wClass.cbWndExtra = NULL;
    wClass.hbrBackground = (HBRUSH)COLOR_WINDOW;
    wClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    wClass.hIcon = NULL;
    wClass.hIconSm = NULL;
    wClass.hInstance = hInst;
    wClass.lpfnWndProc = (WNDPROC)WinProc;
    wClass.lpszClassName = L"Window Class";
    wClass.lpszMenuName = NULL;
    wClass.style = CS_HREDRAW | CS_VREDRAW;

    RegisterClassEx(&wClass);

    HWND hWnd = CreateWindowEx(
        NULL, 
        L"Window Class", 
        L"/ce 但是,这样做并不能保证在对话框编辑器创建控件之前将加载所需的库。", 
        WS_OVERLAPPEDWINDOW,
        200, 200, 300, 0, NULL, NULL, hInst, NULL);
    ShowWindow(hWnd, nShowCmd);

    MSG msg;
    ZeroMemory(&msg, sizeof(MSG));
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}

LRESULT CALLBACK WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
        break;
    }
    return DefWindowProc(hWnd, msg, wParam, lParam);
}

最佳答案

我将此作为答案发布,只是因为我无法在评论中添加图片......

我只是完全按照你的方式做了,相同的代码,Windows 8.1 x64 VS2012 UK English,这是我得到的结果:

result

除非您忽略将源文件另存为 UNICODE 文件的提示,否则您应该会得到相同的结果 - 我看不出有任何其他差异,除非您在 Region/Language 部分进行了一些奇怪的设置控制面板。

如果问题仍然存在,则必须仔细检查所有设置,并可能发布更多代码和/或转储编译器命令行。

关于c++ - 为什么我不能在 Win32 中启用 unicode Edit 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19999338/

相关文章:

c++ - 如何在 C++ 中打印非常大的数字

c++ - 内存影像减少

c++ - 新手 : C++ Private Variables

c++ - 重命名函数 vs undef : conflicts with Windows API

bash - 如何使用 bash/shell/zsh 将字符串中的所有 UTF8 Unicode 字符转换为其相关的代码点?

python - ipython 和 python 处理我的字符串的方式不同,为什么?

c++ - Vulkan:AMD vkCmdDebugMarkerBeginEXT 仅在 vkGetInstanceProcAddr 中找到

c++ - 补充 GetCommandLine 以获取参数计数?

c++ - C/C++ 通用控件检测 TVItem 的双击

excel - VBA - 将字符串转换为 UNICODE