怎样从虚拟建virtual-key code得到键名KeyNameText?

mengxihe 2004-08-10 08:28:51
我知道这个函数,可是参数不是virtual-key code
int GetKeyNameText(
LONG lParam, // second parameter of keyboard message
LPTSTR lpString, // buffer for key name
int nSize // maximum length of key name
);
做程序键盘设置得时候,比如像左用光标键<-,是保存虚拟建还是保存lParam?保存虚拟键怎么得到KeyNameText?保存lParam怎么得到虚拟键?用
UINT MapVirtualKey(
UINT uCode, // virtual-key code or scan code
UINT uMapType // translation to perform
);
LEFT和NUM4是一样的-_-
谁有键盘设置的例子啊?
...全文
225 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengxihe 2004-08-13
  • 打赏
  • 举报
回复
唉!256个KeyName要死人滴~~~~~~~-_-,偶把LPARAM保存了
angelcool 2004-08-11
  • 打赏
  • 举报
回复
xue xi
zhucde 2004-08-11
  • 打赏
  • 举报
回复
virtual-key code得到键名KeyNameText?

有这种对应关系吗?系统没有提供.

正如楼上所说,虚拟键值是一组宏定义,是用一些16进制数来表示的,
而并没有定义其KeyNameText?

LEFT和NUM4并不一样,它们是两个单独的键,
只有当Num Lock关闭了,NUM4不存在了,此时他响应了LEFT.


如果想得到你的目的,
那你自己像MFC一样,自己定义一组对应关系,
让其虚拟键值对应一个KeyNameText.

类似于:

switch(VKKEY)
{
case VK_LEFT:
KeyNameText="LEFT";
break;
....
....
}
huaguli 2004-08-11
  • 打赏
  • 举报
回复
up
howtotell 2004-08-11
  • 打赏
  • 举报
回复
所谓虚键值也就是一个long型的整数,而LPARAM也是,所以他们可以表示一个东西.键名和键值对应关系可以参见MFC的定义:
/*
* Virtual Keys, Standard Set
*/
#define VK_LBUTTON 0x01
#define VK_RBUTTON 0x02
#define VK_CANCEL 0x03
#define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */

#define VK_BACK 0x08
#define VK_TAB 0x09

#define VK_CLEAR 0x0C
#define VK_RETURN 0x0D

#define VK_SHIFT 0x10
#define VK_CONTROL 0x11
#define VK_MENU 0x12
#define VK_PAUSE 0x13
#define VK_CAPITAL 0x14
.....................
mengxihe 2004-08-11
  • 打赏
  • 举报
回复
maxcode(zhangjianfang) : 你的代码是正确滴~~~~~~~~~~,但是对于我的问题是没有解决滴 -_-
maxcode 2004-08-10
  • 打赏
  • 举报
回复
在视图里得到:
BOOL CCT002View::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class

if (pMsg->message == WM_KEYDOWN)
{

CHAR pString[255];
::GetKeyNameText(pMsg->lParam,pString,255);
MessageBox(CString(pString));
}
return CView::PreTranslateMessage(pMsg);
}
刚在CSDN上学得PreTranslateMessage,在这里先用上一下
不知道对不对噢!
赖勇浩 2004-08-10
  • 打赏
  • 举报
回复
我以前做过俄罗斯方块,是两个都保存起来的。

但我想虚拟键值和lParam应该有个对应的转换关系的,找到这个关系也许就行了。

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧