再问图片缩放问题???

wangsiyuanoo 2008-12-10 09:16:10

void CMyDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting

//部分过程省略.....

m_bitmap.Draw(dc,x,y,8,8);//在屏幕上画一个8 * 8的小方块(CImage m_bitmap)
}

//鼠标滚轮的响应
BOOL CMyDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

if(nFlags & MK_CONTROL)
{ //缩放
if(zDelta>0)
{
//如何在这里实现方块的放大

}
else
{
//这里缩小
}
}

return CDialog::OnMouseWheel(nFlags, zDelta, pt);
}
...全文
121 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
C_MFC 2008-12-16
  • 打赏
  • 举报
回复
对,用StretchBlt最好!还有,8,8肯定要用变量代替,在鼠标滚动的时候改变,然后重画!
Sat_shan 2008-12-10
  • 打赏
  • 举报
回复
BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop );

biaozai06 2008-12-10
  • 打赏
  • 举报
回复
StretchBlt,详见MSDN
路人乙2019 2008-12-10
  • 打赏
  • 举报
回复
把8和8设为变量,往上就递增,往下就递减,还是用m_bitmap.Draw。你也可以用bitblt.
kier2 2008-12-10
  • 打赏
  • 举报
回复
把 m_bitmap.Draw(dc,x,y,8,8);中的8用变量代替,然后在鼠标滚轮响应函数里,改变变量的值,然后用invalidate(true)进行重绘,就可以了。

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧