Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Arcus

Windows API Virtual Keycodes

This topic is 6912 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am having trouble getting MSVC++ to recognize certain virtual keycodes. I want to be able to refer to a key as VK_C. This works for any non-character key, but is unrecognized by the compiler for characters. Documentation says it should be ok. I was wondering if anyone else had this problem, and if so how did you get around it? I can access the key using its ascii hes value, but that isn''t as clean. Any thoughts?

Share this post


Link to post
Share on other sites
Advertisement
I use virtual keycode like VK_DOWN and VK_UP, VK_SHIFT etc. and stuff, and strangely enough, while looking at this virtual keycode reference table I have, it didn''t list any of the A-Z character keys, upper OR lower case. Wierd. I''m gonna look it up with MSDN.

Share this post


Link to post
Share on other sites
I looked around for it awhile back. seems to be missing. The easiest thing to do if your stuck on using VK_ constants is to copy the SDK page where it defines the HEX value, and put those as defines "#define VK_A 0x41" etc etc somewhere.

But i''d suggest you use DirectInput. Its very simple to learn and very cool!

Share this post


Link to post
Share on other sites
OK i looked through MSDN, and VK_A through VK_Z DO in fact exist, so maybe your just not defining the right header files or something, but they exist.
Thats weired. Sorry i cant help. Check your case, maybe?

PCMCIA - People Can't Memorize Computer Industry Acronyms
ISDN - It Still Does Nothing
APPLE - Arrogance Produces Profit-Losing Entity
SCSI - System Can't See It
DOS - Defunct Operating System
BASIC - Bill's Attempt to Seize Industry Control
IBM - I Blame Microsoft
DEC - Do Expect Cuts
CD-ROM - Consumer Device, Rendered Obsolete in Months
OS/2 - Obsolete Soon, Too.
WWW - World Wide Wait
MACINTOSH - Most Applications Crash; If Not, The Operating System Hangs

Share this post


Link to post
Share on other sites
hmm... does anyone know of an online virtual keycode table?

cheers

jumble
---------------
"Witty comment needed for signature. Current owner has no sense of humour"

Share this post


Link to post
Share on other sites
Double checking my brain in winuser.h (you did look in there didn''t you!) I see that VK_0 thru VK_9 are ASCII ''0'' thru ''9'' and that VK_A thru VK_Z are ASCII ''A'' thru ''Z''. Do you need that in hex?

Mike Roberts
aka milo
mlbobs@telocity.com

Share this post


Link to post
Share on other sites
yep yep thats right. jogged my memory. here it is from winuser.h

/* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
/* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */


Edited by - demonic faerie on May 8, 2000 5:25:55 PM

Share this post


Link to post
Share on other sites
instead of using the hex values, try using ''a'', ''b'', ''c'' etc.

a2k

Share this post


Link to post
Share on other sites
Oh, heres the damn table:

/*
* 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


#define VK_ESCAPE 0x1B

#define VK_SPACE 0x20
#define VK_PRIOR 0x21
#define VK_NEXT 0x22
#define VK_END 0x23
#define VK_HOME 0x24
#define VK_LEFT 0x25
#define VK_UP 0x26
#define VK_RIGHT 0x27
#define VK_DOWN 0x28
#define VK_SELECT 0x29
#define VK_PRINT 0x2A
#define VK_EXECUTE 0x2B
#define VK_SNAPSHOT 0x2C
#define VK_INSERT 0x2D
#define VK_DELETE 0x2E
#define VK_HELP 0x2F

/* VK_0 thru VK_9 are the same as ASCII ''0'' thru ''9'' (0x30 - 0x39) */
/* VK_A thru VK_Z are the same as ASCII ''A'' thru ''Z'' (0x41 - 0x5A) */

#define VK_LWIN 0x5B
#define VK_RWIN 0x5C
#define VK_APPS 0x5D

#define VK_NUMPAD0 0x60
#define VK_NUMPAD1 0x61
#define VK_NUMPAD2 0x62
#define VK_NUMPAD3 0x63
#define VK_NUMPAD4 0x64
#define VK_NUMPAD5 0x65
#define VK_NUMPAD6 0x66
#define VK_NUMPAD7 0x67
#define VK_NUMPAD8 0x68
#define VK_NUMPAD9 0x69
#define VK_MULTIPLY 0x6A
#define VK_ADD 0x6B
#define VK_SEPARATOR 0x6C
#define VK_SUBTRACT 0x6D
#define VK_DECIMAL 0x6E
#define VK_DIVIDE 0x6F
#define VK_F1 0x70
#define VK_F2 0x71
#define VK_F3 0x72
#define VK_F4 0x73
#define VK_F5 0x74
#define VK_F6 0x75
#define VK_F7 0x76
#define VK_F8 0x77
#define VK_F9 0x78
#define VK_F10 0x79
#define VK_F11 0x7A
#define VK_F12 0x7B
#define VK_F13 0x7C
#define VK_F14 0x7D
#define VK_F15 0x7E
#define VK_F16 0x7F
#define VK_F17 0x80
#define VK_F18 0x81
#define VK_F19 0x82
#define VK_F20 0x83
#define VK_F21 0x84
#define VK_F22 0x85
#define VK_F23 0x86
#define VK_F24 0x87

#define VK_NUMLOCK 0x90
#define VK_SCROLL 0x91

/*
* VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
* Used only as parameters to GetAsyncKeyState() and GetKeyState().
* No other API or message will distinguish left and right keys in this way.
*/
#define VK_LSHIFT 0xA0
#define VK_RSHIFT 0xA1
#define VK_LCONTROL 0xA2
#define VK_RCONTROL 0xA3
#define VK_LMENU 0xA4
#define VK_RMENU 0xA5

#if(WINVER >= 0x0400)
#define VK_PROCESSKEY 0xE5
#endif /* WINVER >= 0x0400 */

#define VK_ATTN 0xF6
#define VK_CRSEL 0xF7
#define VK_EXSEL 0xF8
#define VK_EREOF 0xF9
#define VK_PLAY 0xFA
#define VK_ZOOM 0xFB
#define VK_NONAME 0xFC
#define VK_PA1 0xFD
#define VK_OEM_CLEAR 0xFE

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!