
这个不是好办法,因为你涉及要的放大和缩小,这样会引起失真的。
你只能倒过来,按钮根据的大小而改变尺寸。我有写过自定义按钮皮肤的文章,里面用的是GDI+绘图,可以用到MFC上面。
>对话框没有滚动的便捷支持。你需要在对话框中自己加入两个滚动条控件,并自己定义视口区域和滚动逻辑,并响应滚动条控件的各种消息。换句话说,都需要自己来。
至于只显示一部分,是最简单的,BitBlt设置原图原点和目标区域就可以了。
MFC的CScrollView处理了上述这些需要自定义的代码,用起来很方便。不过在对话框里面插入视图,是脱离MFC框架的做法,一些关联处理起来更麻烦。
如果不是必要,推荐你使用文档视图结构作吧,省事儿多了。
如果是使用GDI其实内核就是一个基础缩放API, StretchBlt()/StretchDIBits() GDI+的话,可以直接Draw()。
具体实现上,这要看你的应用的窗体类型。
1、DIALOG 对话框:
处理WM_CTLCOLORDLG,消息事件,先检查对话框的窗口尺寸,然后依据该尺寸创建一个兼容位图,将原图直接StretchBlt() 缩放到对话框大小,然后将这个兼容位图转换成位图画刷并返回就可以了。
2、普通的WINDOWS 窗体。
处理WM_PAINT消息。 计算窗体尺寸,然后直接使用这个API 进行缩放。 中间可以使用双缓冲,避免屏幕闪烁。
以上就是关于mfc c++ 如何在button上 使图片大小按照按钮大小显示全部的内容,包括:mfc c++ 如何在button上 使图片大小按照按钮大小显示、MFC如何使picture控件的图片随着对话框的大小改变而改变、MFC使用BitBlt显示大图片问题 求解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)