用按钮实现图片的放大和缩小,有个小问题MFC

青天白鹭 2014-07-16 11:33:17
[size=16px]一共有四个按钮,我该如何通过按钮来改变switch中num的值,来实现比例放大缩小呢?貌似还是小白阶段,求帮助。。。。WFC基于对话框程序!!

[/size]

void CPicture2Dlg::DrawPicture(int num)
{
CRect r;
CPicture2Dlg m_picture;
m_picture.GetClientRect(&r);
CDC*pDC=m_picture.GetDC();
pDC->FillRect(&r,NULL);
CBitmap cbmp;
cbmp.LoadBitmap(IDB_BITMAP1);
CDC memdc;
memdc.CreateCompatibleDC(pDC);
memdc.SelectObject(&cbmp);

BITMAP bmp;
long width,height;
cbmp.GetBitmap(&bmp);
width=bmp.bmWidth;
height=bmp.bmHeight;//插入位图工作

//////////////////////////////////////////////////问题所在!!
switch(num)
{
case 0:
pDC->StretchBlt(r.left,r.top,(int)(width*0.5),(int)(height*0.5),&memdc,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
break;
case 1:
pDC->StretchBlt(r.left,r.top,(int)(width*0.75),(int)(height*0.75),&memdc,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
break;
case 2:
pDC->BitBlt(r.left,r.top,r.Width(),r.Height(),&memdc,0,0,SRCCOPY);
break;
case 3:
pDC->StretchBlt(r.left,r.top,r.Width(),r.Height(),&memdc,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
break;
}
}
...全文
307 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiguojie19892 2014-07-17
  • 打赏
  • 举报
回复
int i_change'//这个事全局变量
//然后调用你的变化函数
//单机放大按钮就
DrawPicture(++i_change);
//单击缩小按钮就
DrawPicture(--i_change);
还应该判断
if(0 >= i_change) i_change=0;
if(4 <=i_change) i_change=4;
//大概就是这个思路,自己整理吧!
青天白鹭 2014-07-17
  • 打赏
  • 举报
回复
谢谢各位了,我决定再打打基础,多看看实例再自己做吧!
xiaohuh421 2014-07-16
  • 打赏
  • 举报
回复
你不是已经实现了吗, 你的程序问题在哪里呢?
青天白鹭 2014-07-16
  • 打赏
  • 举报
回复
回复楼上,pDC->StretchBlt()函数就是根据放大倍数重绘图片了吧,我想知道怎么通过“四个按钮,每个按钮对应一个不同的放大倍数值”,怎么修改num的值??也许还不够格,无法与高手交流。。。
善良超锅锅 2014-07-16
  • 打赏
  • 举报
回复
把你的绘图函数放到OnButton1函数中阿。 或者用一个类成员变量来保存放大倍数。然后在点击按钮时修改这个放大倍数。修改后再强制重新绘制图片。绘制图片时根据放大倍数绘制。 至于这个放大倍数值,你可以用一个输入框来接收。或者四个按钮,每个按钮对应一个不同的放大倍数值。 这个不复杂,慢慢来
青天白鹭 2014-07-16
  • 打赏
  • 举报
回复
我是大学生,这是遭鄙视的节奏么,肿么没人理呢。。。。
没事人 2014-07-16
  • 打赏
  • 举报
回复
楼主是大学生么
青天白鹭 2014-07-16
  • 打赏
  • 举报
回复
void CPicture2Dlg::OnButton1() { // TODO: Add your control notification handler code here } 呵呵,这是系统自动生成的按钮1的函数体,我不知道向里面填什么,来实现该有的功能。。。唉 原来是版主,幸会幸会!!
starytx 2014-07-16
  • 打赏
  • 举报
回复
你应该贴出你按钮的单击处理代码,而不是这个绘图代码
青天白鹭 2014-07-16
  • 打赏
  • 举报
回复
点击按钮没反应啊,是不是还需要向单击按钮函数里添加什么代码?

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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