Jump to content

C++ How to detect multiple key presses, the second one being a JUST pr


Jitnaught

Recommended Posts

Hi guys, I'd like to know how to detect multiple keys at the same time, but one being a key down, and the other a key press. So, if I pressed CTRL + N for example, it would do some code, but it wouldn't keep repeating.

I know how to detect a key down (GetAsyncKeyState), but not a key press. I've tried a way that I found, but it didn't work (http://gamedev.stackexchange.com/questions/30826/action-button-only-true-once-per-press (first answer, and I changed some of the code to be GetAsyncKeyState instead of whatever else it was) )

 

And for any of you .NET coders, here is the code I would use in C#. I'd like to basically convert this to C++.

void Test_KeyDown(object sender, GTA.KeyEventArgs e)

{
if (isKeyPressed(Keys.Control) && e.Key == Keys.N)
{
someFunction();
}
}

 

(P.S. I'm a slight noob at C++, so don't get mad at me if I don't understand something)

 

Thanks for your help :)

Edited by LetsPlayOrDy
Link to comment
Share on other sites

I would use this:

if ( GetKeyState(VK_LCONTROL)<0 && GetKeyState(0x46)<0 ){

For normal letter keys you have to use its virtual key value (google it).

Link to comment
Share on other sites

Jitnaught

what key combination you want detect?

Something like CTRL + N.

 

 

I would use this:

if ( GetKeyState(VK_LCONTROL)<0 && GetKeyState(0x46)<0 ){

For normal letter keys you have to use its virtual key value (google it).

But wouldn't that be a key down? I would just like to detect if CTRL is down and A is pressed.

Edited by LetsPlayOrDy
Link to comment
Share on other sites

You could subclass the window and use the Key events in the Message Queue

Edited by XForceP
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.