【问题标题】:C++ Win32api output Unicode from user's inputC++ Win32api 从用户输入输出 Unicode
【发布时间】:2020-10-06 07:39:33
【问题描述】:

我意识到可能会有类似的问题,但我现在真的被困了一段时间。我正在使用 C++ 和 Win32 API 在 Windows 10 上运行。

我需要读取十六进制代码的用户文本框,例如 ѰU+0470,尽管不会出现“U+”。收到这个值后,我需要取代码并打印相应的符号。

使用下面的代码,我可以打印任何 Unicode 符号:

createWindow(L"Static", L"\u2230", WS_VISIBLE | WS_CHILD, 10,10, 190,40, hWnd, NULL,NULL,NULL);

我还可以使用GetWindowText() 阅读文本框。但是,我不知道如何获取用户的输入 0470 并将其打印为文本框中的 Unicode 字符。

【问题讨论】:

  • I can not figure out how to the user's input 0470 你打算使用哪个 api 来接受用户输入?
  • 为了记录和澄清,我使用的是win32api,并且我已经熟悉打印基本文本。我只是需要一种方法将十六进制转换为适当的 Unicode 和打印格式。

标签: c++ winapi unicode


【解决方案1】:

您需要将字符串L"0470" 转换为数字。这是一个基数为 16 的数字,因此您可以使用来自 <cwchar>std::wcstoul。然后,您可以将此数字转换为 WCHAR。我假设您知道如何将单个字符转换为字符串。

【讨论】:

  • 非常感谢!事实证明 wcstoul 正是我所缺少的。
  • 那么听起来你应该接受答案;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
相关资源
最近更新 更多