为什么我用如下程序在一个静态TEXT上画图 可是一直没动静
void CMyTestGUIView::OnPaint() 
{
    CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CWnd *pWnd=GetDlgItem(IDC_MAP);
CDC* pDC=pWnd->GetDC();//get IDC_MAP dc
CDC     pDC_Mem;
pDC_Mem.CreateCompatibleDC(pDC);
CBitmap bmp_Mem;
CRect rect_map;
pWnd->GetClientRect(&rect_map);
bmp_Mem.CreateCompatibleBitmap(pDC, rect_map.Width(), rect_map.Height());
pDC_Mem.FillSolidRect(0,0,rect_map.Width(),rect_map.Height(),RGB(0,200,180));
CBitmap* pOldBmp = pDC_Mem.SelectObject(&bmp_Mem);
//  CPen pen(PS_SOLID,1,RGB(255,0,0));
//  CPen *OldPen_plain = pDC_Mem.SelectObject(&pen);
//  if (pointnum>1)
//  {
pDC_Mem.MoveTo(0,0);
pDC_Mem.LineTo(12,12);
pDC_Mem.BitBlt(0, 0, rect_map.Width(), rect_map.Height(),pDC, 0, 0, SRCCOPY);
/* }*/
drawpointold_x=m_drawmap_x;
drawpointold_y=m_drawmap_y;
pDC_Mem.SelectObject(pOldBmp); 
bmp_Mem.DeleteObject(); 
ReleaseDC(pDC);
// Do not call CFormView::OnPaint() for painting messages
}

解决方案 »

  1.   

    pDC_Mem.BitBlt(0, 0, rect_map.Width(), rect_map.Height(),pDC, 0, 0, SRCCOPY);看了半天,都是pDC_Mem在画图,
    你最后应该pDC来画,从pDC_Mem里面读出
      

  2.   


    我现在改成(*pDC).BitBlt(0, 0, rect_map.Width(), rect_map.Height(),&pDC_Mem, 0, 0, SRCCOPY);出来的文本区域是黑屏,改变窗口尺寸,会不断有黑色线条刷屏
      

  3.   

    你的绘图程序在OnPaint中,屏幕移动或改变大小的话,就会调用onPaint函数,实现窗口重绘。