拖动控件同时绘制控件周围的矩形框

liu254773606 2014-05-15 04:31:54

如图,显示蓝色图片的是一个静态的控件(已子类化),周围的白色框是在对话框中绘制的,
现在我想拖动中间的蓝色块随鼠标移动时,周围的白色框也跟随一起移动,请问该如何做。
蓝色块我已经能拖动了,但是白色的不能一起移动
...全文
168 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2014-05-16
  • 打赏
  • 举报
回复
“因为蓝色的块会不停的刷新成其它的图片” 绘制蓝色的块时, 把 蓝色的块 缩小: CRect rc; GetClientRect(rc);// pic的 客户区 rc.Deflate( 20,20);// 白边 宽度 CRgn rgn; rgn.CreateRectRgn(&rc); pDC->SelectClipRgn(&rgn); 。。。画 蓝色的块。
schlafenhamster 2014-05-16
  • 打赏
  • 举报
回复
rc.Deflate( 20,20);// 白边 宽度 如果总是白边 就不用画了 rc 缩小后的 rect 就是蓝色区.
liu254773606 2014-05-16
  • 打赏
  • 举报
回复
引用 7 楼 schlafenhamster 的回复:
“因为蓝色的块会不停的刷新成其它的图片” 绘制蓝色的块时, 把 蓝色的块 缩小: CRect rc; GetClientRect(rc);// pic的 客户区 rc.Deflate( 20,20);// 白边 宽度 CRgn rgn; rgn.CreateRectRgn(&rc); pDC->SelectClipRgn(&rgn); 。。。画 蓝色的块。
能否讲明白一点,pDC->SelectClipRgn(&rgn)只是选入了白色的边框部分 还是白色的边框+中间的蓝色块。选入了之后呢,白色的外框不用画了吗,还是说 蓝色块跟白色块做为一个整体,一起画出来的
liu254773606 2014-05-15
  • 打赏
  • 举报
回复
引用 5 楼 king1076 的回复:
有那个蓝色块的 Rect 还不好 获取 白色边框的范围?
框架是白色的边框先画上去的,然后根据白色的边框重绘中间的
king1076 2014-05-15
  • 打赏
  • 举报
回复
有那个蓝色块的 Rect 还不好 获取 白色边框的范围?
liu254773606 2014-05-15
  • 打赏
  • 举报
回复
引用 2 楼 flydreamGG 的回复:
既然是一个子类化的控件,为什么不把白边框也在子类化中绘出来呢
我当时也是这样想的,可是行不通。因为蓝色的块会不停的刷新成其它的图片,所以在子类化中来绘制看不见吧? 我试了是看不见,我的想法是在子类中处理OnMouseMove的时候给对话框发消息,但是这样似乎不会很流畅。 还没测试,猜测是这样的。有没有其它更好点的思路提供一个,先谢谢了,这东西愁死我了,都一个星期了还没弄出来。 求各位大神给指点下。
liu254773606 2014-05-15
  • 打赏
  • 举报
回复
引用 1 楼 dingxz105090 的回复:
那你看看白色的是什么?控件还是绘制的?
是绘制的
昨夜无风 2014-05-15
  • 打赏
  • 举报
回复
既然是一个子类化的控件,为什么不把白边框也在子类化中绘出来呢
凌乱哥 2014-05-15
  • 打赏
  • 举报
回复
那你看看白色的是什么?控件还是绘制的?

15,979

社区成员

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

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