getypte key returnen

Status
Niet open voor verdere reacties.

sander the man

Gebruiker
Lid geworden
7 jun 2007
Berichten
94
ik wil een functie maken die kijkt welke key je hebt ingedruk en dan als string (char* ) de ingedrukte key returnt..... hoe doe je dat?

dus iets van:

if("B"=pressed)
{
char* char="B";
return char;
}

zo iets en dat ik dat zelf dan voor het hele alfabet en getallen doe maar hoe?
 
Syntax

SHORT GetAsyncKeyState(
int vKey
);

Parameters

vKey
[in] Specifies one of 256 possible virtual-key codes. For more information, see Virtual-Key Codes.

Klik op Virtual-Key Codes.. ;)

Code:
if ( GetAsyncKeyState( 0x41 ) ) {
    // a is ingedrukt
}

Als je het karakter 'A' cast naar een short wordt dat 65, oftewel 0x41. Dus het is makkelijker om zo te doen:

Code:
if ( GetAsyncKeyState( 'A' ) ) {
    // a is ingedrukt
}

Als je dit wilt doen voor getallen, vul dan wel het getal als karakter in en niet als integer:

Code:
if ( GetAsyncKeyState( 1 ) ) {
    // dit geeft niet aan of 1 ingedrukt is
}

if ( GetAsyncKeyState( '1' ) ) {
    // dit wel
}
 
hij doet het bedankt!

alleen 1 vraagje....

ik heb nu:

Code:
#include <windows.h>
#include <iostream>
using namespace std;

int main()
{
    while(1)
    {
      if ( GetAsyncKeyState('A') ) 
      {
           cout << "A" << endl;
      }   
    }
}

maar als ik dan ook maar 1 sec a indruk staan er minstens 40 regels met a er op.... hoe doe je het zo dat als hij a weergeeft als je `m omhoog doet ofzo of gewoon 1 keer per druk.
 
Code:
// een array die bijhoud welke knoppen zijn ingedrukt
bool keyPressed[128];

// initializeren dat niks ingedrukt is
ZeroMemory( keyPressed, sizeof( keyPressed ) );

while ( true )
{
    if ( GetAsyncKeyState( 'A' ) ) // als de a knop ingedrukt is
    {
        if ( !keyPressed['A'] ) // maar dat nog niet in de array was aangegeven
        {
            std::cout << "A was pressed." << std::endl;
            keyPressed['A'] = true; // geef aan in de array dat a is ingedrukt
        }
    }
    else // als a knop niet ingedrukt is
    {
        if ( keyPressed['A'] ) // maar dat nog niet in de array was aangegeven
        {
            std::cout << "A was released." << std::endl;
            keyPressed['A'] = false; // geef aan in de array dat a niet ingedrukt is
        }
    }
}
 
Code:
// een array die bijhoud welke knoppen zijn ingedrukt
bool keyPressed[128];

// initializeren dat niks ingedrukt is
ZeroMemory( keyPressed, sizeof( keyPressed ) );

while ( true )
{
    if ( GetAsyncKeyState( 'A' ) ) // als de a knop ingedrukt is
    {
        if ( !keyPressed['A'] ) // maar dat nog niet in de array was aangegeven
        {
            std::cout << "A was pressed." << std::endl;
            keyPressed['A'] = true; // geef aan in de array dat a is ingedrukt
        }
    }
    else // als a knop niet ingedrukt is
    {
        if ( keyPressed['A'] ) // maar dat nog niet in de array was aangegeven
        {
            std::cout << "A was released." << std::endl;
            keyPressed['A'] = false; // geef aan in de array dat a niet ingedrukt is
        }
    }
}

vet bedankt! helemaal wat ik zoek :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan