最近在弄MFC界面,用DrawText输出需要定时更新的文本。在网上找了资料。双缓冲技术绘图;代码如下:
void OnPaint()
{
//CPaintDC dc(this);
CDC *pDC = &GetDC();
CDC MemDc;
BITMAP bm;
BYTE *pBits;
CBitmap memBit;
m_bitmap.GetBitmap(&bm); //m_bitmap 为OninitDlg中加载了bmp文件
//Cbitmap无拷贝构造函数,只能用这种方法复制对象
pBits = new BYTE[bm.bmWidthBytes*bm.bmHeight];
m_bitmap.GetBitmapBits(bm.bmWidthBytes*bm.bmHeight,pBits);
memBit.CreateBitmapIndirect(&bm);
memBit.SetBitmapBits(bm.bmWidthBytes*bm.bmHeight,pBits);
MemDc.CreateCompatibleDC(NULL);
CBitmap *pBitMap = MemDc.SelectObject(&memBit);
MemDc.SetBkMode(TRANSPARENT);
MemDc.SetTextColor(RGB(0,255,255));
CFont *pOldFont = MemDc.SelectObject(&m_font); //字体m_font
CString strLoading = _T(".");
CString strInfo = _T("加载中,请稍候");
for(int i=0; i<m_nCount%6; i++)
{
strInfo += strLoading;
}
MemDc.DrawText(strInfo,CRect