内存CDC?
suxk 2003-05-29 04:48:12 CNetwDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rect;
CDC memDc;
memDc.CreateCompatibleDC(pDC);
/* CBrush cBrush;
cBrush.CreateSolidBrush(RGB(128,128,0));
GetClientRect(&rect);
// TODO: Add your message handler code here
pDC->SelectObject (&cBrush);
pDC->DrawFocusRect (&rect);
pDC->FillRect (rect,&cBrush);*/
//画电脑
for(int i=1;i<=m_computer.GetSize();i++)
{
memDc.DrawIcon (m_computer.GetComputer(i)->m_position ,AfxGetApp()->LoadIcon (IDI_COMPUTER));
if(m_computer.GetComputer(i)->m_netCard !=NULL)
memDc.DrawIcon (m_computer.GetComputer(i)->m_netCard->m_position ,AfxGetApp()->LoadIcon (IDI_NETCARD1));
}
//画水晶头
connp *current;
current=m_connectLink.m_head ;
while(current)
{
memDc.DrawIcon (current->m_connect .m_position ,AfxGetApp()->LoadIcon (IDI_CONNECT));
current=current->m_next ;
}
int x=m_change.GetSize ();
while(x!=0)
{
x--;
m_change[x].OnDraw(&memDc);
}
for(x=0;x<m_router.GetSize();x++)
m_router[x].OnDraw(&memDc);
// 设置画笔
CPen *oldpen;
CPen *newPen;
oldpen=new CPen;
oldpen->CreatePen (PS_SOLID, 2,RGB(128,128,128));
newPen=memDc.SelectObject(oldpen);
//直线组
m_LineArray.OnDraw (&memDc);
m_netLine->OnDraw (&memDc);
memDc.SelectObject (newPen);
delete(oldpen);
if(m_isPlay)
{
int x=m_witchLine-1;
if(m_PlayRecord[x].m_isOutTime )
{
KillTimer(WM_PLAY1+x);
return;
}
CLineRecord linerecord;
CPlayReturn cPlayReturn;
linerecord=m_PlayRecord[x].m_line;
//假如是头或尾
if(linerecord.m_beginORend==begin)
cPlayReturn=m_LineArray.FandLine(linerecord.m_witchGroup)->
CPlay(&memDc,1);
else
cPlayReturn=m_LineArray.FandLine(linerecord.m_witchGroup)->
CPlay(&memDc,2);
m_PlayRecord[x].m_position=cPlayReturn.m_currentPoint;
if(cPlayReturn.m_playOver)
{
KillTimer(WM_PLAY1+m_witchLine);
m_isPlay=false;
m_PlayRecord[x].m_isOutTime=true;
if(!IsComputer(m_PlayRecord[x]))
if(!IsChange(m_PlayRecord[x]))
IsRouter(m_PlayRecord[x]);
SendMessage(WM_ISTHELINEEND,0,linerecord.m_witchGroup );
}
}
memDc.BitBlt(0,0,1000,1000,pDC,0,0,SRCCOPY);
memDc.DeleteDC();
怎么不能显示东西