首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

一段绘图代码的有关问题

2012-07-31 
一段绘图代码的问题void CG_Spider2View::DrawBackGround(CDC* pDC){BOOL static isfirst TRUEif (isfi

一段绘图代码的问题
void CG_Spider2View::DrawBackGround(CDC* pDC)
{
BOOL static isfirst = TRUE;
if (isfirst)
{
//内存背景只画一次
CDC memdc;
BITMAP Bgbmp;
int cx = GetSystemMetrics(SM_CXSCREEN);//获取屏幕宽度
int cy = GetSystemMetrics(SM_CYSCREEN);//获取屏幕高度

m_BgBmp.GetBitmap(&Bgbmp);//获取原背景位图信息
memdc.CreateCompatibleDC(pDC);
memdc.SelectObject(&m_BgBmp);

m_BufBgDc.CreateCompatibleDC(pDC);
m_BufBgBmp.CreateCompatibleBitmap(pDC, cx, cy);
m_BufBgDc.SelectObject(&m_BufBgBmp);

//画内存背景
for (int i = 0; i <= cx / Bgbmp.bmWidth ; i++)
{
for (int j =0; j <= cy / Bgbmp.bmHeight ; j++)
{
m_BufBgDc.BitBlt(i * Bgbmp.bmWidth, j * Bgbmp.bmHeight,
Bgbmp.bmWidth, Bgbmp.bmHeight, &memdc, 0, 0, SRCCOPY);
}
}
isfirst = FALSE;
}
//将内存背景贴到前台
pDC->BitBlt(0, 0, m_ClientRect.Width(), m_ClientRect.Height(), &m_BufBgDc, 0, 0, SRCCOPY);
}

m_BgBmp已经载入过了,这段代码是别的程序里的,可以使用,但是到我的程序里就啥也不显示了,这个函数在OnDraw()里调用

[解决办法]
检查 i * Bgbmp.bmWidth, j * Bgbmp.bmHeight 是否合理

热点排行