MFC SDI程序,如何交互式获取用户单击鼠标的坐标? 5C

我在用MFC做一个交互式绘图的小程序,工程名称为Draw。我想在CDrawView类中定义一个public成员函数,void CDrawView::GetPoint(CPoint& point),功能是让用户在客户区窗口中点击鼠标选取一点,并返回该点的坐标。
但是问题是,如何在这个函数中等待鼠标单击事件,即等待WM____LBUTTONUP消息触发后,再继续执行函数,保存点的坐标?

2个回答

ctrl+w,调出类向导,映射WM_LBUTTONUP消息,直接在里面写。

w_vvccc
vae_ww 不知道是不是我没有表达清楚,我是想在函数中等待这个消息触发并响应,而不是消息触发了再响应某个函数呀
接近 4 年之前 回复

首先 有几个点

1.getpoint需要是一个阻塞函数
2.调用getpoint后 界面仍然需要响应消息。
我这边的办法是 getpoint内部启动一个内核对象(如线程什么的) 然后在getpoint内部添加消息循环 while(getmessage){。。。。}
然后自己写个逻辑 在子线程 和 主线程间切换 。等待子线程一段时间 后 切换回主线程 处理一下消息,后再次等待子线程 这么一直循环 使用同一的标致变量 完成子线程的退出 和函数的返回。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问