我在对话框窗口中的OnPaint函数中绘制了一个背景图,然后在背景图上写了一行文字,拖动窗口,当窗口刷新时,文字消失了,请问如何让文字一直保持显示。代码如下:
CDC dcMem;
CClientDC dc(this);
CDSBackgroundBMP *pBMP;
HANDLE oldHBITMAP; dcMem.CreateCompatibleDC(&dc); pBMP = m_arrBackgroundBMP.GetAt(i);
dcMem.SelectObject(pBMP->m_hBMP);
GetDC()->BitBlt(0,
nVerOffset,
pBMP->m_nBMPWidth,
pBMP->m_nBMPHeight,
&dcMem,
0,
0,
SRCCOPY); // 绘制背景图
CPaintDC dca(this); // device context for painting
dca.SetBkMode(TRANSPARENT);
dca.TextOut(0,50,"BBBBBBBBBBBBBB"); // 显示的文本
CDC dcMem;
CClientDC dc(this);
CDSBackgroundBMP *pBMP;
HANDLE oldHBITMAP; dcMem.CreateCompatibleDC(&dc); pBMP = m_arrBackgroundBMP.GetAt(i);
dcMem.SelectObject(pBMP->m_hBMP);
GetDC()->BitBlt(0,
nVerOffset,
pBMP->m_nBMPWidth,
pBMP->m_nBMPHeight,
&dcMem,
0,
0,
SRCCOPY); // 绘制背景图
CPaintDC dca(this); // device context for painting
dca.SetBkMode(TRANSPARENT);
dca.TextOut(0,50,"BBBBBBBBBBBBBB"); // 显示的文本
这一句应该用错了!!!
这一句应该用错了!!!怎么错了?
CClientDC 用在OnPaint()以外的函数中
如:dc.BitBlt(...);
另外你的nVerOffset是垂直滚动条的位置吗?拉动滚动条文字当然不见了。
CClientDC
本质上有什么区别!