作者:唇边那烟味世界 | 来源:互联网 | 2023-05-18 00:29
如题,我想在同一个Hbitmap显示两张图片,通过OnTimer,显示不同的图片。如何删除已经加载的图片,在加载新的图片。PS我已经加载了第一张了,但加载第二张时,显示的是第一张Hbitmap(H
如题,我想在同一个Hbitmap显示两张图片,通过OnTimer,显示不同的图片。如何删除已经加载的图片,在加载新的图片。PS我已经加载了第一张了,但加载第二张时,显示的是第一张
Hbitmap=(HBITMAP)::LoadImage(0,m_Path[i],IMAGE_BITMAP,Imagex,Imagey,LR_CREATEDIBSECTION|LR_LOADFROMFILE);//导入图片
Bitmap.Attach(Hbitmap);//加载图片
m_ImageList.Add(&Bitmap,RGB(0,0,255));
m_list.SetImageList(&m_ImageList,LVSIL_SMALL);
6 个解决方案
初始化HBITMAP m_hBitmap[XX] = ....;
OnTimer中修改m_hBitmap数组下标,然后调用InvalidateRect()强制刷新。
OnPaint/OnDraw函数中BitBlt/StretchBlt()贴图即可。
“但加载第二张时,显示的是第一张”
这是因为你没有进行刷新Invalidate(TRUE),刷新时会在OnPaint函数中进行重新绘制,这就要求你绘制图片的代码放到OnPaint函数中。
对于2楼的方法,我现在在用的,但不想这样做,一楼的,不知是不是我用的不对,希望说下用法,再者,如何针对某楼回复,cnsdn这里好大,像迷宫,我来几次,都找不到自己的贴。