Witam!
Mam pewien problem :)
Po naciśnięciu klawisza Esc lub Enter mój programik oparty na MFC zamyka się bez żadnego ostrzeżenia. O co chodzi? Czy klawisze te domyślnie przypisane mają takie działanie? Jak temu zapobiec?
Próbowałem przechwytywać sygnały klawiatury, ale jakoś mi nie wychodzi...
Co z tym można zrobić/robicie?
za ESC odpowiada WM_CANCEL a za Enter odpowiada WM_OK, dodaj te zdarzenia i oprogramuj jak Ci sie podoba.
markoot napisał(a)
za ESC odpowiada WM_CANCEL a za Enter odpowiada WM_OK, dodaj te zdarzenia i oprogramuj jak Ci sie podoba.
Bzdura jakas :)
W funkcji PreTranslateMessage zanim zwrocisz ja dalej do programu dodaj sobie ten kodzik i bedzie po klopocie
if (pMsg->message == WM_KEYDOWN)
{
if ((pMsg->wParam == VK_ESCAPE) || (pMsg->wParam == VK_RETURN) || (pMsg->wParam == VK_LCONTROL))
{
pMsg->wParam = NULL;
}
}
Malcolm jak zwykle nie zawiódł... Dzięki!
Dziekuje bardzo.
Jesli juz odpowiadam to staram sie by odpowiedz byla konkretna na me skromne umiejetnosci.
Małe sprostowanko dla wszystkich.
ESC i Enter działają tak na dialogu, Dialog-based to tak naprawdę aplikacją nie jest (o wiele prościej jest użyć SDI) :>
I dla dialogu faktycznie wysyłają command IDCANCEL (przycisk Cancel i klawisz Esc), i ID default buttona OK, czyli IDOK.
marcinEc napisał(a)
ESC i Enter działają tak na dialogu, Dialog-based to tak naprawdę aplikacją nie jest
A tak z ciekawosci. A czym w takim razie jest tak szeroko rozpowszechnione 'Dialog-based Application' ? ;)
marcinEc napisał(a)
(o wiele prościej jest użyć SDI) :>
O wiele prosciej to sie uzywa akurat, to co najbardziej pasuje do umiejetnosci programisty oraz szybkiego i dobrego wykonania zadania. :)
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.