用GetDC()的时候,输出的内容可能被WM_ERASEBKGND擦除了吧。
处理WM_ERASEBKGND消息,注释掉默认处理,直接返回TRUE。试试。
另外OnPaint里面最好使用BeginPaint/EndPaint,这里面还有一个“无效区域”的问题。
GetDC不会使“无效区域”变有效,如果注释掉CDialog::OnPaint();,输出的文本还可能闪烁。