跪求键盘消息的响应函数

hyc_77777 2008-04-03 10:45:37
小弟跪求笔记本键盘上的加号和减号的键盘消息响应函数 哪位大哥指点啊,不是 小键盘的加号和减号
...全文
207 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Elysium 2008-04-03
  • 打赏
  • 举报
回复
取一下键值ok
hyc_77777 2008-04-03
  • 打赏
  • 举报
回复
用了 VK_ADD和VK_SUBTRACT 只有按西欧啊数字键盘的加号和减号才好用 ,但是按左面的加号和减号就不好了
一剑 2008-04-03
  • 打赏
  • 举报
回复
+
VK_ADD (6B)
Add key

-
VK_SUBTRACT (6D)
Subtract key

*
VK_MULTIPLY (6A)
Multiply key

/
VK_DIVIDE (6F)
Divide key
hyc_77777 2008-04-03
  • 打赏
  • 举报
回复
不行 那是响应数字小键盘的 加号和减号的
我用的是笔记本的 没有小数字键盘的 ‘
郁闷完了 大家帮帮忙啊
楼上的大哥 谢谢了
hxingz 2008-04-03
  • 打赏
  • 举报
回复
敢问lz:VK_ADD和VK_SUBTRACT不行吗?
hyc_77777 2008-04-03
  • 打赏
  • 举报
回复
好象键盘的每一个的键对应一个值,我现在就是想知道加号键和减号键 对应的值 哪位大哥知道啊
hyc_77777 2008-04-03
  • 打赏
  • 举报
回复
对 呵呵我好象 弄错了 是用WM——CHAR判断 ,我现在就是不知道加号和减号 应该在SWITCH()语句中响应哪个值啊
菜牛 2008-04-03
  • 打赏
  • 举报
回复
没听说过每个键一个消息的,我们都是在WM_CHAR消息中判断哪个键的。你是Windows编程吗?
hyc_77777 2008-04-03
  • 打赏
  • 举报
回复
大哥每一个键都有自己的响应消息函数啊 例如键盘上end这个键对应的 消息响应函数就是VK—END,每一个键都有自己对应的 我现在 就是想要笔记本键盘上的加号和减号的响应函数 大家帮帮忙啊
yxz_lp 2008-04-03
  • 打赏
  • 举报
回复
用WM_CHAR可以响应
菜牛 2008-04-03
  • 打赏
  • 举报
回复
用WM_CHAR一样响应的吧,等我试试。
genieyyt 2008-04-03
  • 打赏
  • 举报
回复
樓上正解~~

打印鍵值源碼附上~~
case WM_KEYDOWN:
case WM_KEYUP:
case WM_CHAR:
case WM_DEADCHAR:
case WM_SYSKEYDOWN:
case WM_SYSKEYUP:
case WM_SYSCHAR:
case WM_SYSDEADCHAR:

// Rearrange storage array

for (i = cLinesMax - 1 ; i > 0 ; i--)
{
pmsg[i] = pmsg[i - 1] ;
}
// Store new message

pmsg[0].hwnd = hwnd ;
pmsg[0].message = message ;
pmsg[0].wParam = wParam ;
pmsg[0].lParam = lParam ;

cLines = min (cLines + 1, cLinesMax) ;

// Scroll up the display

ScrollWindow (hwnd, 0, -cyChar, &rectScroll, &rectScroll) ;

break ; // ie, call DefWindowProc so Sys messages work

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;

SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)) ;
SetBkMode (hdc, TRANSPARENT) ;
TextOut (hdc, 0, 0, szTop, lstrlen (szTop)) ;
TextOut (hdc, 0, 0, szUnd, lstrlen (szUnd)) ;

for (i = 0 ; i < min (cLines, cyClient / cyChar - 1) ; i++)
{
iType = pmsg[i].message == WM_CHAR ||
pmsg[i].message == WM_SYSCHAR ||
pmsg[i].message == WM_DEADCHAR ||
pmsg[i].message == WM_SYSDEADCHAR ;

GetKeyNameText (pmsg[i].lParam, szKeyName,
sizeof (szKeyName) / sizeof (TCHAR)) ;

TextOut (hdc, 0, (cyClient / cyChar - 1 - i) * cyChar, szBuffer,
wsprintf (szBuffer, szFormat [iType],
szMessage [pmsg[i].message - WM_KEYFIRST],
pmsg[i].wParam,
(PTSTR) (iType ? TEXT (" ") : szKeyName),
(TCHAR) (iType ? pmsg[i].wParam : ' '),
LOWORD (pmsg[i].lParam),
HIWORD (pmsg[i].lParam) & 0xFF,
0x01000000 & pmsg[i].lParam ? szYes : szNo,
0x20000000 & pmsg[i].lParam ? szYes : szNo,
0x40000000 & pmsg[i].lParam ? szDown : szUp,
0x80000000 & pmsg[i].lParam ? szUp : szDown)) ;
}
EndPaint (hwnd, &ps) ;
return 0 ;

16,472

社区成员

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

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

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