SHORT GetKeyState( int nVirtKey // virtual-key code );
WN_KEYDOWN下:switch(wParam) { case VK_UP: {;} case Vk_SHIFT: {nShiftKeyDown=TRUE;} //按下shift case VK_CONTROL: {nCtrlKeyDown=TRUE; } //ctrl } case WM_KEYUP: {;} case WM_CHSR: { if(wParam==(65&VK_CONTROL)) {if(nCtrlKeyDown==TRUE) {;} //按下 ctrl+A } else if(wParam==98||wParam==66) { if(nShiftKeyDown==TRUE) {;} shift+B } 多给点分别
VF_F1--VF_F1作为快捷菜单项在资源文件定义中与菜单项联系比如:IDM_OPEN; 在处理函数中响应菜单项IDM-OPEN既处理VF-F1----VF-F12 switch(iMessge) { case WM_COMMAND: if(LOWORD(wParam)==IDM_OPEN) { } } 而字母,则在消息处理函数中用键盘响应: case WM_KEYDOWN: switch(wParam) case VK_A: {} 明白了吧
111222(www.mozilla.org) :怎么得到alt键的按键 Windows CE: The GetKeyState function can only be used to check the down state of the following virtual keys: VK_CONTROL VK_SHIFT VK_MENU VK_LCONTROL VK_LSHIFT VK_LMENU VK_RCONTROL VK_RSHIFT VK_RMENU
int nVirtKey // virtual-key code
);
{
case VK_UP:
{;}
case Vk_SHIFT:
{nShiftKeyDown=TRUE;} //按下shift
case VK_CONTROL:
{nCtrlKeyDown=TRUE; } //ctrl
}
case WM_KEYUP:
{;}
case WM_CHSR:
{
if(wParam==(65&VK_CONTROL))
{if(nCtrlKeyDown==TRUE)
{;} //按下 ctrl+A
}
else if(wParam==98||wParam==66)
{
if(nShiftKeyDown==TRUE)
{;} shift+B
}
多给点分别
在处理函数中响应菜单项IDM-OPEN既处理VF-F1----VF-F12
switch(iMessge)
{
case WM_COMMAND:
if(LOWORD(wParam)==IDM_OPEN)
{
}
}
而字母,则在消息处理函数中用键盘响应:
case WM_KEYDOWN:
switch(wParam)
case VK_A:
{}
明白了吧
Windows CE: The GetKeyState function can only be used to check the down state of the following virtual keys:
VK_CONTROL
VK_SHIFT
VK_MENU
VK_LCONTROL
VK_LSHIFT
VK_LMENU
VK_RCONTROL
VK_RSHIFT
VK_RMENU
老兄你要分没问题,但我还想请教一个问题
每次按键的时间都只能响应一个消息的,那只有一个键值传过来了
比如要得到ctrl+alt+A这三个键的组合就不太可能吧111222(www.mozilla.org) :你的方法不错,在我按下ctrl后
但我如果按ctrl+tal+A就取不到了,tal的值老是弹起的,没有被按下
是不是ctrl+shift被系统载断没有传给我了
不信你试一下,按下Ctrl ALT Shift再按A
得到的这个数是不同的
在调试的时候不行,可是在运得的时候还是可以
谢谢以上的各位特别是111222(www.mozilla.org)(还在你的红星怎么这么多啊)
么,就有三个消息,你用三个if判断,设三个变量,TRUE,TRUE&TRUE,
TRUE&TRUE&TRUE, 不就可以区分,是ctrl,是ctrl+alt,还是ctrl+alt+a
了么
再多给点fen吧*^__^*