小弟刚刚接触API,想实现按键盘上的字母,弹出对话框显示键入的是多少,添加的相应如下:
case WM_CHAR:
switch (msg->wParam)
{
case VK_SPACE:
MessageBox(NULL,"space","键盘",0);
return 0;
}
可编译显示msg没有定义,那请问怎么使用存在键盘消息内的wParam呢?
case WM_CHAR:
switch (msg->wParam)
{
case VK_SPACE:
MessageBox(NULL,"space","键盘",0);
return 0;
}
可编译显示msg没有定义,那请问怎么使用存在键盘消息内的wParam呢?
解决方案 »
- 地图图片上添加图标,怎么做?
- 关于获得焦点的问题!高手急救!
- 关于获取MFC ActiveX控件本身所在的路径
- bohut(伯虎) DentistryDoctor(牙科医生) 刚那问题还可错呀.
- 我今天就是不信邪了!还是来者有分
- 能解释一下这行语句的意思吗?
- 谁知道国外的程序员论坛吗?
- 急:请教一个ACTIVEX在IE中运用的设计思路。
- HELP!! error LNK2001: unresolved external symbol _acmGetVersion@0
- MFC 怎么激活CheckBox 获得焦点和失去焦点的事件
- 原始套接字绑定出错,看不出原因,贴出代码求解
- VC++访问Oracle数据库问题
LRESULT APIENTRY WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
LRESULT APIENTRY WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
有一个输入参数“message”,你写的是“msg”,这2个要一样,编译器才知道什么叫msg
MSG* pMsg;
pMsg->message;
switch (pMsg->wParam)
{
case VK_SPACE:
MessageBox(NULL,"space","键盘",0);
return 0;
}
case WM_LBUTTONDOWN:
MessageBox(hWnd,"左键被单击","左键",0);
return 0;
case WM_RBUTTONDOWN:
MessageBox(hWnd,"右键被单击","右键",0);
return 0;
小弟已经修改成这样,可是有个警告,是说pMsg没有初始化,运行是键入字母后,程序直接错误关闭,请问是怎么回事呢?
switch(message)
{
你:
MSG* pMsg;//就算=0 ,初始化也没用的
pMsg->message;//这里是没东西的
switch (pMsg->wParam)
是错的。
switch (message)
{
case VK_SPACE:
MessageBox(NULL,"space","键盘",0);
return 0;
}
case WM_LBUTTONDOWN:
MessageBox(hWnd,"左键被单击","左键",0);
return 0;
case WM_RBUTTONDOWN:
MessageBox(hWnd,"右键被单击","右键",0);
return 0;
可是我改成这样后,即使是按space ,它也显示的是 “左键被单击”,而不是我想要的按space显示space
chCharCode = (TCHAR) wParam; // character code
lKeyData = lParam; // key data 是这样:
switch (message)
{
case WM_CHAR:
char str[2];
str[0] = wParam;
str[1]=0;//sz
MessageBox(NULL,str,"键盘",0);
break;
lKeyData = lParam; // key data
这两条是什么意思?是自动执行的吗?是不是在WM_CHAR: 情况下,wParam中保存的就是ASCII码啊? char str[2];
str[0] = wParam;
str[1]=0;//sz
这三条的原理是?
chCharCode = (TCHAR) wParam; // character code
lKeyData = lParam; // key data
这3句是WM_CHAR消息时对应的参数说明。(每个都有,你不明白时要查帮助)因为一个ASCII字母(A到Z)对应一个字节,所以用2个字节的数组表示这个字符串。MEssagebox要一个字符串。str[0] = wParam;字符 str[1] = 0;C中的字符串结束标记。如果输入汉字就要str【3】了。