将LOWORD(wParam)转换为常量wchar_t*
Convert LOWORD(wParam) to const wchar_t*
我开发计算器应用程序作为家庭作业,并检查按下的数字如下:
if (LOWORD(wParam) == buttonDigit0) {
writeToOperand(L"0");
}
else if (LOWORD(wParam) == buttonDigit1) {
writeToOperand(L"1");
}
else if (LOWORD(wParam) == buttonDigit2) {
writeToOperand(L"2");
}
// ...
其中writeToOperand
为void writeToOperand(const wchar_t* digit);
我想把它缩小成这样:
if (LOWORD(wParam) >= 100 && LOWORD(wParam) <= 109) {
writeToOperand(LOWORD(wParam));
}
其中100
是按钮#define buttonDigit0 100
的id,而109
是#define buttonDigit9 109
。但我不知道如何将LOWORD(wParam)
转换为const wchar_t*
来实现我的writeToOperand
函数。
您只需要使用本地wchar_t
数组变量来存储计算出的数字:
wchar_t digit[2] = {0}; // reserve place for terminating null...
if (LOWORD(wParam) >= 100 && LOWORD(wParam) <= 109) {
digit[0] = static_cast<wchar_t>('0' + LOWORD(wParam) - 100); // explicit cast to avoid a warning
writeToOperand(digit);
}
但是必须计算实际值并将其存储到本地数组中,才能将地址传递给writeToOperand
相关文章:
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 什么时候在C++中返回常量引用是个好主意
- 代理对象的常量正确性
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 通过多个头文件使用常量变量
- 在cuda线程之间共享大量常量数据
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 是默认情况下分配给char数组常量的值
- 私有类型的静态常量成员
- 类似枚举的计算常量
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- MacOS通过在莫哈韦"wchar.h"下破碎的自制啤酒发出叮当声
- 无法将参数 1 从 WCHAR 转换为常量字符 *
- 如何在 C++ 中的 wcstok 中使用常量 WCHAR* 变量?
- 将字符串文本常量定义为 char const* 和 wchar const*
- VC++ 2017 如何将常量wchar_t转换为 WCHAR *.
- C++ 需要解释“静态常量 WCHAR*”
- "strcpy":无法将参数 2 从"WCHAR *"转换为"常量字符 *