碰到问题了,来问一问各位!

ccnuxjg 2002-12-24 01:21:14
现在我要写一个类似于画图的软件,碰到了一些问题,特来请教各位!
1、如果用户选择了画直线,而且已经点下了鼠标左键,并按住左键不放,鼠标移动,在鼠标当前点和其始点之间总是有一条直线。当鼠标左键松开之后,直线才画好。那个在MouseMove的时候,总是跟着一条直线的效果该如何做?

2、如果我现在已经画好了直线、实心椭圆和空心椭圆,现在程序要能够选择画的这些对象,应该如何处理?
...全文
64 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
luixui 2002-12-25
  • 打赏
  • 举报
回复
学习
zswzwy 2002-12-24
  • 打赏
  • 举报
回复
我发过去了,请查收。
zhenxizhou 2002-12-24
  • 打赏
  • 举报
回复
第一个问题。当鼠标按下的时候,把移动的线用反色擦除。好象有不少书介绍过这个。
第二个问题,自定义图形类,对它进行处理。
hanwg 2002-12-24
  • 打赏
  • 举报
回复
MSDN的例子DrawCli,很有参考价值。
GaoLun 2002-12-24
  • 打赏
  • 举报
回复
我来是凑热闹的
混点分
ccnuxjg 2002-12-24
  • 打赏
  • 举报
回复
UP
zhaolaoxin 2002-12-24
  • 打赏
  • 举报
回复
自定义数据结构,保存每一类的信息,主要是形状、位置坐标、颜色等。再根据鼠标当前位置判断点中的是哪一个对象。
ccnuxjg 2002-12-24
  • 打赏
  • 举报
回复
谢谢!
jiangangxiang@sina.com

我再找找看。

怎么实现直线、椭圆等的选择呀!?
GoldenSword 2002-12-24
  • 打赏
  • 举报
回复
第一个问题MSDN里面确实有,我刚刚看过的,不过看不懂,呵呵。我自己也做过,效果也可以,不过代码不在手边,方法就是在MouseMove的时候先设置
pDC->SetRop(R2_NOT)把前一条直线重画一遍,再画一条当前的直线。
MSDN的代码你要在安装光盘里面找的。要的话我可以发给你。
zhang865 2002-12-24
  • 打赏
  • 举报
回复
第一个问题,我知道,我有代码,你要么?
zhang865@sohu.com

第二个,不会,但是看过一本图象处理的书,上面有,所以建议你找本书或者找点资料看,
zswzwy 2002-12-24
  • 打赏
  • 举报
回复
我发给你一个,你说的都可以实现。
代码比较简单。
ccnuxjg 2002-12-24
  • 打赏
  • 举报
回复
to isdong:你所说的目录在哪里呀,没找到!不在MSDN里呀

To USTCTony:我也知道用异或来实现,可是却总是不成功!有没有相关代码呀?
USTCTony 2002-12-24
  • 打赏
  • 举报
回复
第一个问题:
你可以在MOUSE_MOVE中用反色画笔把以前的线再画一遍,这样你需要存储以前的一个线条。然后你再用原定的画笔将新的位置再画一条线条。这样就可以了。

第二个问题:
你可以用位每一个默认的图形建立一个类,这个类总应该有图形的位置信息。
当鼠标移动到这些位置的一个RECT内时。你可以先用反色画一编,然后激活绘画函数,这样不就可以了?呵呵。

第一个问题是一定可以的。

第二个问题是我个人的看法。呵呵。
isdong 2002-12-24
  • 打赏
  • 举报
回复
找到你的VC例子

SAMPLES\VC98\mfc\ole\drawcli

本工程有详细的代码

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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