gpt4 book ai didi

c++ - 如何将 wParam 转换为 CString?

转载 作者:行者123 更新时间:2023-11-30 02:05:54 28 4
gpt4 key购买 nike

我有一个来自 WM_KEYDOWN 消息的 pMsg->wParam,我想将它转换成一个 CString。我该怎么做?

我试过下面的代码:

TCHAR ch[2];
ch[0] = pMsg->wParam;
ch[1] = _T('\0');
CString ss(ch);

但它不适用于高 ASCII 字符。

最佳答案

根据documentation , WM_CHARwParam 中发送一个字符代码。备注部分的第一段说代码确实是 Unicode UTF-16 代码点。无论您是为 8 位还是 16 位 TCHAR 编译代码都是如此。

CodyGray 的评论在 CString 提供各种构造函数的部分是正确的。您正在寻找的是将 wchar_t 作为其第一个参数(第二个参数,重复计数,默认设置为 1)的参数。因此,要从 WPARAM 构造一个 CString,您可以将该值转换为 wchar_t。以下示例打印“0”,确认构造的字符串确实符合预期。

#include <stdio.h>
#include <Windows.h>
#include <cstringt.h>
#include <atlstr.h>
int main ()
{
WPARAM w = 0x222D;
CString cs ((wchar_t)w);
printf ("%d", cs.Compare (L"\x222D"));
}

它在 _UNICODE 和 ANSI 编译模式下工作相同,并且可以跨 32 位和 64 位移植。

关于c++ - 如何将 wParam 转换为 CString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9306771/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com