很多软件的皮肤资源里的图标都是4个连成一直线的,是同一个图片上的,这是什么贴图技术?解决思路
很多软件的皮肤资源里的图标都是4个连成一直线的,是同一个图片上的,这是什么贴图技术??
很多软件的皮肤资源里的图标都是4个连成一直线的,是同一个图片上的,分别表示不同的状态,比如傲游浏览器里的前进按钮,你看皮肤包里面,“前进”的不同的4个状态都是在一个图片上的,一直线排开的。通常我们贴图时,都是用stretchblt,把图片贴到指定的地方上,但是,这4个状态连在一起的图片,怎么贴图法?这是什么技术?有没有具体的例子??用什么函数作的??
------解决方案--------------------
假设按钮宽100
图片宽300
图片为三个按钮状态的图片一体的
BITMAP bitmapinfo;
CBitmap bitmap;
bitmap.LoadBitmap(m_nBitmapID);
bitmap.GetBitmap(&bitmapinfo);
pMemDC.SelectObject(&bitmap);
状态1
pDC->StretchBlt(rc.left, rc.top, rc.Width(),rc.Height(),
&pMemDC,0,0,100,bitmapinfo.bmHeight,SRCCOPY);
状态2
pDC->StretchBlt(rc.left, rc.top, rc.Width(),rc.Height(),
&pMemDC,100,0,100,bitmapinfo.bmHeight,SRCCOPY);
状态3
pDC->StretchBlt(rc.left, rc.top, rc.Width(),rc.Height(),
&pMemDC,200,0,100,bitmapinfo.bmHeight,SRCCOPY);
很多软件的皮肤资源里的图标都是4个连成一直线的,是同一个图片上的,分别表示不同的状态,比如傲游浏览器里的前进按钮,你看皮肤包里面,“前进”的不同的4个状态都是在一个图片上的,一直线排开的。通常我们贴图时,都是用stretchblt,把图片贴到指定的地方上,但是,这4个状态连在一起的图片,怎么贴图法?这是什么技术?有没有具体的例子??用什么函数作的??
------解决方案--------------------
假设按钮宽100
图片宽300
图片为三个按钮状态的图片一体的
BITMAP bitmapinfo;
CBitmap bitmap;
bitmap.LoadBitmap(m_nBitmapID);
bitmap.GetBitmap(&bitmapinfo);
pMemDC.SelectObject(&bitmap);
状态1
pDC->StretchBlt(rc.left, rc.top, rc.Width(),rc.Height(),
&pMemDC,0,0,100,bitmapinfo.bmHeight,SRCCOPY);
状态2
pDC->StretchBlt(rc.left, rc.top, rc.Width(),rc.Height(),
&pMemDC,100,0,100,bitmapinfo.bmHeight,SRCCOPY);
状态3
pDC->StretchBlt(rc.left, rc.top, rc.Width(),rc.Height(),
&pMemDC,200,0,100,bitmapinfo.bmHeight,SRCCOPY);