请教一个关于OnPaint()中绘图的问题.
void CMapEditorDlg::OnPaint()
{
if (IsIconic())
{
...
}
else
{
CRect rect;
m_EditMap->GetClientRect(&rect);
CPaintDC dc(GetDlgItem(IDC_MAP)); // device context for painting
CDC MemDC;
MemDC.CreateCompatibleDC(NULL);
MemDC.FillRect(&rect,&m_Bk);
// gameMap.DrawMap(&MemDC.m_hDC,0,0,rect.Width(),rect.Height());
MemDC.TextOut(100,100,"zzzz",4);
dc.BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);
DeleteDC(MemDC);
CDialog::OnPaint();
}
}
OnPaint()函数体如上,IDC_MAP为一个STATIC控件,我要在这个控件上绘图,想先在内存DC MemDC中把图形画好,然后直接贴到dc上,可是运行后却什么都没画出来.
被注释的一个函数gameMap.DrawMap(...);是我定义的一个类函数,用来在指定的HDC上绘位图,把它的注释去掉发现它却可以正常显示.把MemDC.FillRect(&rect,&m_Bk);
中的MemDC改为dc发现也可以正常绘制...请问这到底是什么原因?
是因为我没有指定MemDC的什么信息么??
本人初学MFC希望高手指教!!!!!