From the MSDN page for
CFont.CreateFontIndirect()
This font has the characteristics specified in the LOGFONT structure. When the font is selected by using the CDC::SelectObject member function, the GDI's font mapper attempts to match the logical font with an existing physical font. If it fails to find an exact match for the logical font, it provides an alternative whose characteristics match as many of the requested characteristics as possible.
I have bolded the relevant bit.
Is there a possibility that this is happening in your case?
I should say that I have not used C, C++ or MFC for years and years so any follow-up questions would be a waste of your time. :)
I just remembered this, for some odd reason.
Good luck! :)