CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

vc6中如何实现橡皮条选择(rubber banding)?

楼主xiao_fang(frank)2005-09-01 14:34:34 在 VC/MFC / 界面 提问

橡皮条选择就是拖动鼠标进行对象选择时,出现一个矩形虚框,常见于绘图软件,windows资源浏览器中文件的选择也是。  
   
  CRectTracker类好像不适用于存在多个对象的情况。  
   
  网上有一些C#的例子,但VC6我还找不到可供参考的代码。请各位大侠指点,最好有代码.  
  问题点数:50、回复次数:8Top

1 楼happyparrot(快乐鹦鹉)回复于 2005-09-01 14:43:16 得分 20

我一般不用CRectTracker。自己响应鼠标移动和点击事件绘制矩形框,每次绘制新矩形前,将原矩形用异或方式再画一遍。当矩形绘制结束后,用最后的矩形大小位置去选择对象。  
  Top

2 楼xiao_fang(frank)回复于 2005-09-01 15:31:08 得分 0

这个我认真想过,响应WM_LBUTTONDOWN,WM_MOVE和WM_LBUTTONUP消息:  
   
  OnLButtonDown:做上左键按下标记;  
  OnMouseMove:如果左键按下,按你所说的方法用异或方式画矩形虚框;  
  OnLButtonUp:取消左键按下标记。  
  没错吧?  
   
  我现在是不知道如何在鼠标移动过程中,将选择框中的对象画出带tracker的形状并刷新,请指点。  
  Top

3 楼xiao_fang(frank)回复于 2005-09-01 18:33:10 得分 0

自己up  
  Top

4 楼dirdirdir3(风)回复于 2005-09-01 19:32:43 得分 15

你判断是选中的话就刷新为选中的状态,由选中变为非选中时刷新为非选中状态。Top

5 楼teli_eurydice(哭泣的仙人掌。。。。)回复于 2005-09-01 19:36:59 得分 15

CRectTracker  
   
  自己重载再修改一下,很好用Top

6 楼xiao_fang(frank)回复于 2005-09-01 21:21:50 得分 0

to     teli_eurydice(哭泣的仙人掌。。。。)   :  
   
  重载CRectTracker,是可以试一下:  
  至少要重载HitTest,TrackRubberBand,Track。。。我先试试看。  
  Top

7 楼xiao_fang(frank)回复于 2005-09-02 12:30:30 得分 0

upTop

8 楼xiao_fang(frank)回复于 2005-09-22 16:07:19 得分 0

我现在已完成一个测试程序,基本实现了画图(简单矩形)、鼠标选择、拖动、改变图形大小等功能,基本可用,在此将代码贴出来,请大家指点。  
  同时也遇到一点问题,请大家指点:  
  1.双击消息不知为何被屏蔽了。  
  2.改变图形大小时,如果把左上角的手柄拖过右下角手柄时(所谓invert),手动过程中会留下一些橡皮线;  
  3.不知为何用SetPaneText不能更新状态栏?  
   
  ------  
  简要说明:  
  1.鼠标四种状态:画图,选择,拖动,track(改变图形大小)  
  2.画图及其它鼠标形为参考powerdesigner,如点击一个按钮开始画图(OnButtonDrawRect()),右键取消  
  3.其它看代码,有一些注释,不清楚请跟帖。  
  代码马上贴出来。Top

相关问题

  • 关于用VC做橡皮擦
  • 橡皮筋画线
  • 用CRectTracker画橡皮筋
  • VC
  • vc
  • 橡皮筋好了,麻子脸来了
  • 拖动橡皮带线问题
  • photoshop中的橡皮擦工具
  • 怎么实现“橡皮筋”线?
  • GDI+, XOR, 橡皮筋, 精灵动画

关键词

  • 矩形
  • 选择
  • 鼠标
  • 代码
  • 图形
  • crecttracker
  • 画图
  • 选中
  • 拖动
  • 左键

得分解答快速导航

  • 帖主:xiao_fang
  • happyparrot
  • dirdirdir3
  • teli_eurydice

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo