Weil damit deine Benutzeroberfläche vom Windows-Standard abweicht. Und das sollte man nicht ohne guten Grund tun. Ich würde mich sehr wundern, wenn ich einen Dialog nicht mit der Escape-Taste schließen könnte.
Du prüfst den Nachrichtentyp (pMsg->message) auf WM_KEYDOWN. Falls der passt, kannst du in den anderen Membern nachsehen, ob es die richtige Taste ist. Was da drin steht, hängt vom Nachrichtentyp ab, aber das ist in der MSDN Library dokumentiert. Bei WM_KEYDOWN steht in pMsg->wParam der virtuelle Tastencode.
Entscheidend ist, was du aus PretranslateMessage zurückgibst. Wenn die Nachricht normal behandelt werden soll, gibst du 0 zurück, ansonsten irgendeinen anderen Wert.