GDI+ DrawImage函数怎么调才能实现超出部分自动截掉 我用GDI+实现这样一个功能 我有个矩形Rect 我要在这个矩形里面实现一副位图的左移或者右移功能。这个是通过改变DrawImage的第二个参数的X坐标来实现的 但是问题是X坐标变化时图片是动了 但是图片显示区域已经超过这个矩形了 我想让超过矩形的图片部分隐藏着不显示 这样看上去就感觉是一副图片从矩形外面慢慢移动进来的效果 请问这个怎么实现呢? 我调用了g.setclip(rect) 没作用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Status DrawImage( Image *image, const RectF &destRect, REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, Unit srcUnit, ImageAttributes *imageAttributes, DrawImageAbort callback, VOID *callbackData);修改这两个值 兄弟 没效果呀 下面是我的代码 graphics.DrawImage(bmp,testRect,0,0,bmp->GetWidth(),bmp->GetHeight(),UnitPixel); graphics.DrawImage(bmp,test,0,0,test.Width,test.Height,UnitPixel); 这样调用也不行。。 有一块矩形区域rect,有个图片img要求是实现图片从左边进来右边出去的效果?DrawImage的y,width好说。你可以先定义一个rcImg,初始化为(rect.X - img.Width - 1,Y,img.Wdith,HEIGTH);OnTimer里rcImg.X = min(rect.left,rcImg.X);rcImg.Width = rcImg.GetRight() >= rect.right ? rect.right - rcImg.X : rcImg.Widht 有点问题。//显示区域m_rcDest = RectF(320,300,50,50);//计算Image的辅助rectm_rcImg = RectF(m_rcDest.X - 1 - m_pImg->GetWidth(),m_rcDest.Y,m_pImg->GetWidth(),m_pImg->GetHeight());//DrawImage的目的地XREAL xDest = max(m_rcImg.X,m_rcDest.X);//DrawImage的源图XREAL xSrc = xDest > m_rcImg.X ? (m_rcDest.X - m_rcImg.X) : 0;//最终显示宽度REAL width = min(m_rcImg.GetRight(),m_rcDest.GetRight()) - xDest;g.DrawImage(m_pImg, xDest,m_rcImg.Y, (REAL)xSrc,(REAL)0, width,m_rcImg.Height,Gdiplus::Unit::UnitPixel); 最后就是刷新以及计时器里的m_rcImg的偏移了 哥们 谢了 DrawImage函数的参数我理解错了 太感谢你了 握爪 如何实现点击按钮生成新的对话框? 请教一个C++问题 不能使用go to dialog editor 打不开资源视图了 关于取得别的进程中,ListView控件中的文本内容的问题! 怎么对文本编辑框进行查找\替换? DMA读写磁盘方法 里面的课程对用vc++语言来开发软件或控制硬件有帮助吗? 请问 m_box.SetCurSel(nbox)中nbox的初始值是多少?为什么,请指教 [100分求助!]VC中调用DLL的问题 怎么样找回一个已经被我不小心删除的dialog?? atl_no_vtable
const RectF &destRect,
REAL srcx,
REAL srcy,
REAL srcwidth,
REAL srcheight,
Unit srcUnit,
ImageAttributes *imageAttributes,
DrawImageAbort callback,
VOID *callbackData
);
修改这两个值
graphics.DrawImage(bmp,testRect,0,0,bmp->GetWidth(),bmp->GetHeight(),UnitPixel);
要求是实现图片从左边进来右边出去的效果?
DrawImage的y,width好说。
你可以先定义一个rcImg,初始化为(rect.X - img.Width - 1,Y,img.Wdith,HEIGTH);
OnTimer里
rcImg.X = min(rect.left,rcImg.X);
rcImg.Width = rcImg.GetRight() >= rect.right ? rect.right - rcImg.X : rcImg.Widht
m_rcDest = RectF(320,300,50,50);
//计算Image的辅助rect
m_rcImg = RectF(m_rcDest.X - 1 - m_pImg->GetWidth(),m_rcDest.Y,m_pImg->GetWidth(),m_pImg->GetHeight());
//DrawImage的目的地X
REAL xDest = max(m_rcImg.X,m_rcDest.X);
//DrawImage的源图X
REAL xSrc = xDest > m_rcImg.X ? (m_rcDest.X - m_rcImg.X) : 0;
//最终显示宽度
REAL width = min(m_rcImg.GetRight(),m_rcDest.GetRight()) - xDest;
g.DrawImage(m_pImg, xDest,m_rcImg.Y, (REAL)xSrc,(REAL)0, width,m_rcImg.Height,Gdiplus::Unit::UnitPixel);