Jakiś czas temu zaczolem sobie pisac własne GUI pod DirectDraw i natrafilem na nastepujący (być może mały) problem :-)
Aktualnie kodze coś a'la edit.
Przy wciśnięciu klawisza na klawiaturze przypisuje do tablicy przechowującej wprowadzany tekst zawartość parametru wParam jako kolejny znak.
Najlepiej zobrazuje to kawałek kodu:
char szText[255]; //wyzerowana tablica
//... w MainWndProc:
switch(msg)
{
case WM_KEYDOWN:
szText[strlen(szText)]=wParam;
break;
//...
}
Problem polega na tym, ze gdy wciskam klawisze a-z to niezaleznie od tego czy Caps Lock jest wł. czy tez wył. do tablicy trafiają tylko duże litery. Tak samo nie da sie poprawnie wprowadzać polskich znaków (ą, ć, ę...) a wcisniecie Alt, Shift lub innych klawiszy nie obrazujących standardowych znaków, niestety powodują wpisanie do tablicy kodu tych klawiszy :| .
Czy jest jakiś sposób bezproblemowego odczytania wciśnietego klawisza w sposób w jaki robią to zwykle edytory tekstu bez zabawy w sprawdzanie czy Alt, Shift itd. są wciśniete?