问题我已经解决,花屏出在我的文字绘制上。
原先我用一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下的花屏问题就解决了。不过其中的原因谁能说清楚呢?
原先我用一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下的花屏问题就解决了。不过其中的原因谁能说清楚呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货