MFC中如果同一个界面中涉及到多次点击鼠标左键实现不同的功能如何操作?

Atgo0101 2015-05-04 04:30:55
MFC中如果同一个界面中涉及到多次点击鼠标左键实现不同的功能如何操作?比如画图时,先画图,多次移动图形,如果每个操作都是单击鼠标左键去实现,那么如何使用WM_LBOTTONDOWN,在一个里面添加还是多个WM_LBOTTONDOWN??用switch吗,但是switch()中的常量是什么呢?提供一下思路,或者有代码介绍一下,谢谢。
...全文
285 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rered2010 2015-05-05
  • 打赏
  • 举报
回复
引用 3 楼 zuoyou613 的回复:
[quote=引用 2 楼 mfmfmmf1 的回复:] 要有工具条或者radio单选控件 让用户选择将要进行的行为是 画图还是拖拽 添加成员变量 int action_style 当画图被用户点选时,action_style=1 当拖拽被用户点选时,action_style=2 在LButtonDown事件中 switch(action_style)
请问鼠标单击和action_style的值是如何对应的呢?[/quote] 、事先弄出2个按钮来,点按钮1就是画图功能,action_style 1;点按钮2就是拖拽功能,action_style =2 ; 再去鼠标功能里判断 目前位于哪个功能,
Eleven 2015-05-05
  • 打赏
  • 举报
回复
判断鼠标点击的位置,点再图形上就拖动否则就绘制图形。CRect::PtInRect()
qwd108114 2015-05-05
  • 打赏
  • 举报
回复
引用 2 楼 mfmfmmf1 的回复:
要有工具条或者radio单选控件 让用户选择将要进行的行为是 画图还是拖拽 添加成员变量 int action_style 当画图被用户点选时,action_style=1 当拖拽被用户点选时,action_style=2 在LButtonDown事件中 switch(action_style)
讲变量值与选择键按钮关联即可
奉海 2015-05-05
  • 打赏
  • 举报
回复
弄一成员变量int m_nState存储鼠标点击任务,比如为1表示画线,为2表示拖动线段,初始值为0 switch( m_nState ) { case 1: // 画线 break; case 2: // 拖动线段 break; }
Atgo0101 2015-05-05
  • 打赏
  • 举报
回复
引用 2 楼 mfmfmmf1 的回复:
要有工具条或者radio单选控件 让用户选择将要进行的行为是 画图还是拖拽 添加成员变量 int action_style 当画图被用户点选时,action_style=1 当拖拽被用户点选时,action_style=2 在LButtonDown事件中 switch(action_style)
请问鼠标单击和action_style的值是如何对应的呢?
笨笨仔 2015-05-05
  • 打赏
  • 举报
回复
顶1楼!使用“状态机”
mfmfmmf1 2015-05-05
  • 打赏
  • 举报
回复
状态值 1,2,3,4,5 是你自己定义的 一般,都会在enum语句中给出其含义 例如 enum{DRAW,DRAG,LINE,CIRCLE,RECTANGLE,ELLIPSE}; 会自动使以上单词所代表的值为 0,1,2,3,4,5 然后在switch语句中就可以这样用 switch(action_style) { case DRAW: 画;break; case DRAG: 拖拽;break; case CIRCLE: 画线;break; case RECTANGLE: 画圆;break; } 这样看上去是不是高大上了
mfmfmmf1 2015-05-04
  • 打赏
  • 举报
回复
要有工具条或者radio单选控件 让用户选择将要进行的行为是 画图还是拖拽 添加成员变量 int action_style 当画图被用户点选时,action_style=1 当拖拽被用户点选时,action_style=2 在LButtonDown事件中 switch(action_style)
赵4老师 2015-05-04
  • 打赏
  • 举报
回复
参考《编译原理》中的词法分析和有限状态自动机。

16,490

社区成员

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

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

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