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

MFC中如果同一个界面中涉及到多次点击鼠标左键实现不同的功能如何操作?
MFC中如果同一个界面中涉及到多次点击鼠标左键实现不同的功能如何操作?比如画图时,先画图,多次移动图形,如果每个操作都是单击鼠标左键去实现,那么如何使用WM_LBOTTONDOWN,在一个里面添加还是多个WM_LBOTTONDOWN??用switch吗,但是switch()中的常量是什么呢?提供一下思路,或者有代码介绍一下,谢谢。
------解决思路----------------------
参考《编译原理》中的词法分析和有限状态自动机。


------解决思路----------------------
要有工具条或者radio单选控件
让用户选择将要进行的行为是 画图还是拖拽
添加成员变量 int action_style
当画图被用户点选时,action_style=1
当拖拽被用户点选时,action_style=2
在LButtonDown事件中 switch(action_style)
------解决思路----------------------
弄一成员变量int m_nState存储鼠标点击任务,比如为1表示画线,为2表示拖动线段,初始值为0
switch(  m_nState )
{
case 1:
  // 画线
break;
case 2:
  // 拖动线段
break;
}
------解决思路----------------------
引用:
要有工具条或者radio单选控件
让用户选择将要进行的行为是 画图还是拖拽
添加成员变量 int action_style
当画图被用户点选时,action_style=1
当拖拽被用户点选时,action_style=2
在LButtonDown事件中 switch(action_style)


讲变量值与选择键按钮关联即可
------解决思路----------------------
引用:
Quote: 引用:

要有工具条或者radio单选控件
让用户选择将要进行的行为是 画图还是拖拽
添加成员变量 int action_style
当画图被用户点选时,action_style=1
当拖拽被用户点选时,action_style=2
在LButtonDown事件中 switch(action_style)

请问鼠标单击和action_style的值是如何对应的呢?


、事先弄出2个按钮来,点按钮1就是画图功能,action_style  1;点按钮2就是拖拽功能,action_style =2 ;
再去鼠标功能里判断 目前位于哪个功能,
------解决思路----------------------
状态值 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;
}
这样看上去是不是高大上了
------解决思路----------------------
顶1楼!使用“状态机”
------解决思路----------------------
判断鼠标点击的位置,点再图形上就拖动否则就绘制图形。CRect::PtInRect()