永发信息网

WM_KEYDOWN 键盘值问题

答案:2  悬赏:30  手机版
解决时间 2021-03-05 07:09
#include

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow){

WNDCLASSEX wc;
HWND hWnd;
MSG msg;

wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW|CS_VREDRAW;
wc.hInstance = hInstance;
wc.lpszClassName = "DX21";
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW +1);
wc.lpszMenuName =NULL;
wc.cbClsExtra =0;
wc.cbWndExtra =0;

if(!RegisterClassEx(&wc)){
MessageBox(NULL,"エラー","bb",MB_OK);
}

hWnd = CreateWindow(wc.lpszClassName,
"DX21 Sample",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
640,
480,
NULL,
NULL,
hInstance,
NULL

);

ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);

PeekMessage(&msg,NULL,0,0,PM_REMOVE);
while(msg.message!=WM_QUIT)
{

if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message){
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_CREATE:
MessageBox(NULL,"Hello","DX21",MB_OK);
break;
case WM_LBUTTONDOWN:
MessageBox(NULL,"左","DX21",MB_OK);
break;
case WM_RBUTTONDOWN:
MessageBox(NULL,"右","DX21",MB_OK);
break;
case WM_KEYDOWN:
MessageBox(NULL,"a","DX21",MB_OK);
break;

default:
return DefWindowProc (hWnd,message,wParam,lParam);
}
return 0;
}
我的问题是 怎么能控制 WM_KEYDOWN的键盘响应
比如按下a 会弹出按下的是a的消息盒子
按下b 会弹出按下的是b的消息盒子
请大大们能否根据上面的代码给改下 谢谢
最佳答案
加入

case WM_CHAR:
{
char c = (char)wParam;
if('a' <= c && c <= 'z')
TCHAR szBuff[2] = {0,0};
szBuff[0] = c;
MessageBox(hWnd,szBuff,_T("字符"),MB_OK);
}
全部回答
接收没什么任何问题 procedure mm(var msg:tmessage);message wm_keydown; procedure tdemo.mm(var msg: tmessage); begin showmessage('123'); end; procedure tdemo.speedbutton1click(sender: tobject); begin postmessage(handle,wm_keydown,vk_return,0); end;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下列关于公民法定义务和道德义务的说法正确的
礼成一词可以用在那些地方
阿璋饭店怎么去啊,有知道地址的么
4〇4〇4=6怎樣解簽
请人指教,等候客人麻烦别人,好久不见,请人帮
自行车试车时不小心撞了老人,该怎么?
北京暴雨 在车里淹死 打不开车门车淹了,打不
柏塘一路地址在什么地方,想过去办事
po required by 15th dec 2017什么意思
为什么东北经济落后?是不是因为东北人太蠢确
最后一个字是新的成语
撒哈拉沙漠地下埋藏有丰富的A.铁矿资源B.煤炭
衣托洗衣生活馆怎么去啊,有知道地址的么
三亚旅游哪些景点最好
购房合同与全款收据开发商要收回,可以吗
推荐资讯
10的19次方欧姆 化成千欧是多少
如何绑定别人的微信号
蓝色毛衣配什么颜色衬衫
央视版的三国演义电视剧是哪年开始拍摄的
武汉大学 理科有什么适合女生又比较好一点的
万顺汽车美容中心地址有知道的么?有点事想过
梅子泡酒有什么作用啊!
西树泡芙大华巴黎春天店这个地址在什么地方,
【myselfyourself】英语翻译Igottobemyself-t
香辣鸭脖子在什么地方啊,我要过去处理事情
怎么将xshell里面的session bar 设置在上面
华硕笔记本开机按了f9
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?