Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Odbieranie znaków z klawiatury w WINAPI

#1
Odbieranie znaków z klawiatury w WINAPI
Witam!!!!
Mam pytanie... Jakich funkcji użyć do odebrania jakiegoś znaku z klawiatury i zapisania go w zmiennej char znak? Chodzi mi tu oczywiście o WINAPI. Jestem pewien że to będzie w funkcji LRESULL CALLBACK WndProc(...) a informacja jest zapisana pod LPARAM lParam. Tylko nie wiem jakich funkcji użyć.
 System operacyjny: windows_xp_2003 Przeglądarka: opera
#2
RE: Odbieranie znaków z klawiatury w WINAPI
Niekoniecznie musi to być w funkcji obsługi komunikatów. Bardziej w pętli wiadomości. Można to zrobić za pomocą funkcji GetAsyncKeyState(kod_klawisza). Jak widzisz jako parametr musisz podać kod klawisza. Spis wszystkich kodów masz tutaj: http://msdn2.microsoft.com/en-us/library/ms645540.aspx
Oto przykład:
Kod:
if(GetAsyncKeyState(VK_RETURN))
            MessageBox(NULL, "Naciśnięty został ENTER.",
            "Info", MB_OK | MB_ICONINFORMATION);
Po prostu wklej ten kod do pętli wiadomości. W tym momencie program po naciśnięciu ENTER będzie wyświetlał okno komunikatu.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#3
RE: Odbieranie znaków z klawiatury w WINAPI
W pętli komunikatów:

Kod:
WM_KEYDOWN: /* WM_KEYUP: */
switch(lparam)
{
case VK_UP:
  /// instrukcje;
}
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#4
RE: Odbieranie znaków z klawiatury w WINAPI
To wiedziałem tylko nie znałem tej całej tablicy
Tylko teraz mam inny problem. Gdy nacisnę klawisz program odbiera go i robi przerwę po czym dopiero następuje cały ciąg. Jak pozbyć się tej przerwy ??
 System operacyjny: windows_xp_2003 Przeglądarka: opera
#5
RE: Odbieranie znaków z klawiatury w WINAPI
Ja używam DirectInput Język
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#6
RE: Odbieranie znaków z klawiatury w WINAPI
A możesz opisać jak działa i jak się go używa??
 System operacyjny: windows_xp_2003 Przeglądarka: opera
#7
RE: Odbieranie znaków z klawiatury w WINAPI
Właściwie DirectInput jest wykorzystywany głównie w aplikacjach multimedialnych takich jak gry. Przed funkcją renderującą mam funkcję sprawdzającą stan urządzeń wejścia.

Kod:
void GetInput()
{
g_pInputSystem->UpdateDevices();
if (g_pInputSystem->KeyDown(DIK_ESCAPE)) PostQuitMessage(0);
}

Co do używania to ściągnij DirectX SDK, jest w nim wiele przykładów związanych między innymi z DirectInput.
http://msdn.microsoft.com/archive/defaul...oadmap.asp

Zaletą DirectInput jest to, że jest bardzo szybki, w programach użytkowych pisanych w WinAPI nie jest to aż tak pożądane więc jeśli nie musisz nie używaj DirectInput.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#8
RE: Odbieranie znaków z klawiatury w WINAPI
Wielkie Dzięki :D
 System operacyjny: windows_xp_2003 Przeglądarka: opera
#9
RE: Odbieranie znaków z klawiatury w WINAPI
Nie potrzebne wcale tu zamieszanie z DirectX, samo WinAPI także wspiera takie rzeczy http://xion.org.pl/files/texts/mgt/html/3_3.html gdzies na 3/4 strony będzie o "komunikatach o znakach"
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
kody klawiszy winapiodczyt znaku z klawiatury winapiwin api keydownwinapi keydownwinapi kody klawiszy

Podobne wątki (Odbieranie znaków z klawiatury w WINAPI)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Zamiana całego zestawu znaków wg przyporządkowania BarHorab 5 2614 19.12.2018, 16:45
Ostatni post: Szachista
  Kodowanie znaków w .bat kkkkk2105 4 8631 25.08.2017, 14:38
Ostatni post: kkkkk2105
  [C++ WinAPI] Kompresja bitmapy kikiw 0 5132 25.12.2014, 16:15
Ostatni post: kikiw

Skocz do:


Wybrane wątki (Odbieranie znaków z klawiatury w WINAPI)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Git - kompilacja pobranej apki ~Anonim 6 7416 23.12.2017 14:59
Ostatni post: ~Anonim
  wczytywanie zmiennej z innego pliku batch grymariusza 7 8198 18.12.2017 17:34
Ostatni post: broda99
  Jaki kod pod takie okno formularza w visualbasicu 2010? aktywny27 11 17616 26.11.2017 23:26
Ostatni post: Ajgor
  Jaki projekt na pythona bartek164 0 7317 25.11.2017 19:59
Ostatni post: bartek164
  [VB.NET] przenoszenie danych między formami Pioro 15 18201 19.11.2017 03:48
Ostatni post: broda99
  Java.android.Tworzenie akcji Blendow 0 7208 16.11.2017 23:38
Ostatni post: Blendow
  Proszę o pomoc, cmd! PanKasztan4 1 6657 16.11.2017 22:05
Ostatni post: broda99
  Jaki kod w visual basicu 2010 express? aktywny27 5 7838 07.11.2017 11:01
Ostatni post: Ajgor
  Sprawdzanie wygranej. PixelFullHD 1 7433 03.11.2017 18:38
Ostatni post: Ajgor
  Algorytm Genetyczny C pr1991 3 7733 26.10.2017 11:52
Ostatni post: Szachista
  Program C++ do pola i objętości mistrz18 2 7631 18.10.2017 23:10
Ostatni post: Ajgor
  [C]Część wspólna 2 przedziałów. polak3018 2 7023 13.10.2017 16:43
Ostatni post: ptrick
Question Wyznaczanie maksimum spośród 5 liczb - schemat blokowy mistrz18 5 7356 05.10.2017 19:49
Ostatni post: broda99
  Batch - odczytywanie temperatury karty graficznej i zapisywanie jej do zmiennej ~Anonim 4 7391 03.09.2017 21:41
Ostatni post: ~Anonim
  Kodowanie znaków w .bat kkkkk2105 4 8631 25.08.2017 14:38
Ostatni post: kkkkk2105