This is a cool idea (and a great simplification from Codeplug)! Unfortunately CodeGuru doesn't let me rate either of you guys

Quick question: don't you get an error:
error C2662: 'BOOL CWnd::PostMessageW(UINT,WPARAM,LPARAM)' : cannot convert 'this' pointer from 'const CMFCDlgDlg' to 'CWnd &'
because of the const'ness of the function PostedFunction()?