2010-08-29 106 views
1

一旦發現SDL和X11使用相同的鍵盤鍵ID(我認爲它們被稱爲鍵盤鍵),我想使用這些代碼。然而,我不知道他們,我不想僅僅使用他們的定義,因爲我不想包括東西,因爲我正在編寫一個庫,不想依賴X11或SDL,因爲我可能會只是使用X11或只是使用SDL。有沒有一個像0x200或類似的鍵盤代碼列表?鍵盤代碼ID

讓我試着更好地解釋一下,我使用SDL和X11作爲庫來進行輸入,但我希望我的應用程序擁有自己的鍵定義來抽象SDL,X11和Win32鍵。

回答

1

直接使用代碼並不明智,因爲這些代碼隨時可能會改變(不像它們的定義)。並且利用SDL使用與X11相同的代碼的事實聽起來不太好。更好的方法是爲X11和SDL創建橋頭,看起來像這樣:

#define MYLIB_SOME_KEY0 SDL_SOME_KEY0 
#define MYLIB_SOME_KEY1 SDL_SOME_KEY1 

然後只是有條件地包含相應的頭文件。

如果我沒有說服你,可以在SDL.h頭文件中找到相應的定義。

+0

讓我試着更好地解釋一下,我使用SDL和X11作爲庫進行輸入,但是我希望我的應用程序具有自己的鍵定義來抽象SDL,X11和Win32鍵。 – Jookia 2010-08-29 13:27:24

+0

@Jookia - 這不是SDL嗎?一個關於X11和Win32鍵的抽象... – 2010-08-29 13:40:08

+0

啊,我意識到我的錯誤,一個更好的主意是鍵入鍵的枚舉並將它們映射到X11鍵或SDL鍵。 – Jookia 2010-08-29 14:39:15

0

如果我理解的很好,那麼我認爲這是不可能的。它是處理鍵盤信號並將它們轉換爲相應的鍵盤佈局的操作系統(例如:azerty或qwerty)。並將其發送給應用程序。

我可以猜你在想什麼嗎?使鍵盤的處理程序,使其也可以與
一個小號dW¯¯的AZERTY鍵盤上走?

如果是這樣,那麼可以用'w'手動更改'q'和'z'。