问题我已经解决,花屏出在我的文字绘制上。
原先我用一CFont对象m_font作为CTextObj的成员,每次绘制时,将它选入设备上下文:
  CFont* pOldFont=pDC->SelectObject(&m_font);
  pDC->TextOut(...); 
  pDC->SelectObject(pOldFont);
后来改成将LOGFONT对象m_lf作为CTextObj的成员保存,绘制时动态创建字体,如下:
  CFont ft;
  ft.CreateFontIndirect(&m_lf); 
  CFont* pOldFont=pDC->SelectObject(&ft);
  pDC->TextOut(...); 
  pDC->SelectObject(pOldFont);
  ft.DeletObject();win98下的花屏问题就解决了。不过其中的原因谁能说清楚呢?