【发布时间】:2010-12-23 11:18:20
【问题描述】:
我正在处理一个预先存在的代码库,我希望用户在代码运行期间的任何时间键入任何 1-2 位数字,然后按 Enter 键,并将该数字传递给函数。目前,用户输入的处理方式如下:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
switch (message)
{
case WM_KEYDOWN:
Engine::GetInstance()->GetInput()->GetKeyboard()->SetKeyPressed(static_cast<int>(wParam));
break;
//snip
现在,我不确定一些事情,
a) 为什么按键被传递为整数而不是字符?
b) 在这种情况下发送“F1”会是什么结果aaand
c) 我如何使用它来读取 1-2 位数字并仅在按下回车时传递?
【问题讨论】:
-
您是否有理由需要使用 WM_KEYDOWN 执行此操作?对于熟键盘输入,WM_CHAR 将是一个更好的选择——它可以处理数字键盘和其他奇怪的输入。