SDB>Наверно, это самый популярный вопрос сайта.
Все очень просто — по 'Enter' диалог прибивается в CDialog::OnOK(), а по 'Esc' — в CDialog::OnCancel(). Соответственно, если Вы перекроете эти методы и не будете вызывать там унаследованную реализацию — Ваш диалог "будет вечным". 
Но если перекрыть CDialog::OnCancel() то он вообще не будет закрываться. Как этого избежать?