Did you know that MFC's CFontDialog class has special support for rich edit controls? There is an undocumented CFontDialog constructor that takes a CHARFORMAT structure to initialize the font settings. When the dialog returns IDOK from DoModal, you simply call the GetCharFormat member function to fill in a CHARFORMAT structure with the user's selections. Then you can call the SetCharFormat member function in CRichEditView (or use it with an EM_SETCHARFORMAT message). This works great since the font dialog handles all the special effects and everything.