מחפש פיתרון ל DirectInput

ilankt

New member
מחפש פיתרון ל DirectInput

אני רוצה לקבל בלולאה איזה כפתור נלחץ. עכשיו אי אפשר לעשות את זה בלולאה ובדיקה רגילה, כי DirectInput בודק לפי מיקום במקלדת, לא לפי ASCII. עכשיו, יש לי את הקוד הזה:
char *CInput::GetCharByLoop() { DWORD key = 0; char* strKeyName = NULL; // find the DIK_XXX which is pressed for (key = 0; key<256; key++) { if( Keys[key] & 0x80 ) break; } // convert DIK_XXXX to ASCII value of the key strKeyName = new char[255]; DIPROPSTRING keyName;keyName.diph.dwSize = sizeof(DIPROPSTRING); keyName.diph.dwHeaderSize = sizeof(DIPROPHEADER); keyName.diph.dwObj = key; keyName.diph.dwHow = DIPH_BYOFFSET; di_keyboard->GetProperty(DIPROP_KEYNAME, &keyName.diph); // convert string wcstombs(strKeyName,keyName.wsz,255); return strKeyName; }​
שהוא אמור לעשות את העבודה, אבל הוא פשוט מדפיס את מה שכתוב על כל כפתור... למשל לוחצים רווח, כותב SPACE... אם מישהו מכיר דרך לעשות את זה, זה יהיה מעולה. בתודה מראש, אילן.
 
למעלה