[vc++] Esc || Enter zamykają aplikację

0

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?

0

za ESC odpowiada WM_CANCEL a za Enter odpowiada WM_OK, dodaj te zdarzenia i oprogramuj jak Ci sie podoba.

0
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;
		}
	}
0

Malcolm jak zwykle nie zawiódł... Dzięki!

0

Dziekuje bardzo.
Jesli juz odpowiadam to staram sie by odpowiedz byla konkretna na me skromne umiejetnosci.

0

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.

0
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. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1