In the discussion following my entry about dialog procedure return values, somebody suggested an alternate dialog design where you just call DefDlgProc to do default actions, the same way you write window procedures and call DefWindowProc. So let's do that.