我现在要将120张35*35的图片在OnPaint里画出来。。
我用一个循环来画这120张图片,每一次循环都BitBlt一个图片。。
结果发现CPU飚的很高。。
是不是有一种方法,,先把这120张画到内存中,然后在OnPaint里用一个BitBlt就可以实现的方法啊。。
请教啊
这个要怎么实现
我用一个循环来画这120张图片,每一次循环都BitBlt一个图片。。
结果发现CPU飚的很高。。
是不是有一种方法,,先把这120张画到内存中,然后在OnPaint里用一个BitBlt就可以实现的方法啊。。
请教啊
这个要怎么实现
这样做 我遇到一个问题。。结果是这120张图片显示不出来。。只显示一块黑色的区域
代码如下
m_ClintDC.CreateCompatibleDC(pDC);
//m_ClintDC.SetBkColor(RGB(31,72,82));
m_ClintDC.SetBkMode(TRANSPARENT);
HBITMAP bitmap=CreateCompatibleBitmap(m_ClintDC.GetSafeHdc(),COL_COUNT*m_WIDTH+4,ROW_COUNT*m_HEIGHT+4);
m_ClintDC.SelectObject(bitmap);
然后在DrawMip()函数中把这120张图画到m_ClintDC中。。代码如下
CDC tempDC;
tempDC.CreateCompatibleDC(pDC);
tempDC.SelectObject(m_bitmap1);//m_bitmap1为这120张图所在的图片 for(int i=0;i<ROW_COUNT;i++)
for(int j=0;j<COL_COUNT;j++)
{
StretchBlt(&m_ClintDC,i,j,m_T_WIDTH,m_T_HEIGHT,&tempDC,0,m_Card[m_MeStation].card[i][j]*m_T_HEIGHT,m_T_WIDTH,m_T_HEIGHT,RGB(255,0,255));
}然后在OnPaint 中
StretchBlt(pDC,m_BasePoint.x,m_BasePoint.y,COL_COUNT*m_WIDTH+4,ROW_COUNT*m_HEIGHT+4,&m_ClintDC,0,0,COL_COUNT*m_WIDTH+4,ROW_COUNT*m_HEIGHT+4,RGB(255,255,255));
结果显示的是一个黑色区域,,那120张小图片没有显示出来
请问这是哪里出错了啊
CreateCompitableBitmap(pDC...)