我现在要做一个效果,就是起始点在屏幕的60,150处有一个192*170的图片(相当于一个按钮)
我鼠标点下时,一副新图BMP(800*600),在60,150处显示,只显示这副图在该坐标位置且大小为192*170的部分图像。接着逐渐扩大到显示全图。该怎么实现这个效果?我大概知道是BitBlt,循环贴图,可是怎么贴还是很晕呀~~~还有个效果,就是新图在60,150处现实全部图像,不过是被压缩成192*170大小,接着逐渐变大到800*600,高手来指导一下把~~~感激不尽
我鼠标点下时,一副新图BMP(800*600),在60,150处显示,只显示这副图在该坐标位置且大小为192*170的部分图像。接着逐渐扩大到显示全图。该怎么实现这个效果?我大概知道是BitBlt,循环贴图,可是怎么贴还是很晕呀~~~还有个效果,就是新图在60,150处现实全部图像,不过是被压缩成192*170大小,接着逐渐变大到800*600,高手来指导一下把~~~感激不尽
BOOL BitBlt(
int x,
int y,
int nWidth,
int nHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
DWORD dwRop
);
设置nWidth和nHeight就可以了。图像不会被拉伸
1、整图的由小到大
2、图的局部,到整体,
要能有一个看的出来的过程,且放大是要均匀的。
int x = 60, y = 150;
//每次放大一圈(5个像素点)
for (int i =0; i < 次数; i++)
bitbit(x - i * 5, y - i* 5, width + i * 10, height + i * 10, srcdc, x - i * 5, y - i* 5, SRCCOPY);大体这样
也就是说bitbit(x - i * 5, y - i* 5, width + i * 10, height + i * 10, srcdc, x - i * 5, y - i* 5, SRCCOPY);这句中的X,Y是不能同样的比率变化的。因为原图的起始点在左边偏上的地方。
也就是说bitbit(x - i * 5, y - i* 5, width + i * 10, height + i * 10, srcdc, x - i * 5, y - i* 5, SRCCOPY);这句中的X,Y是不能同样的比率变化的。因为原图的起始点在左边偏上的地方。____________那我一开始也理解有点偏差。不知道你是什么系统,不过用双缓冲总是可以的。循环太快了,要用循环的话不妨另开一个线程。