MFC中单击button并随鼠标移动怎么实现?

对话框上放置一个button,当鼠标左键单击这个button并持续按下鼠标左键在对话框上移动时,button能随着鼠标的移动而移动即鼠标到哪button就到哪,当松开鼠标... 对话框上放置一个button ,当鼠标左键单击这个button并持续按下鼠标左键在对话框上移动时,button能随着鼠标的移动而移动即鼠标到哪button就到哪,
当松开鼠标左键时,button停止移动,且button无单击状态变化。这个怎么实现呀,能给出代码参考吗?另外,在对话框以蓝色填充一块矩形,要求button表面上也是这种颜色,但是能正常显示出文字,在拖动button的时候颜色要一直是蓝色,且button要时时可见。有劳大侠们指教了。
VC6中没有WM_MOUSEDRAG呀
展开
 我来答
qds316
2010-01-03 · TA获得超过129个赞
知道答主
回答量:86
采纳率:0%
帮助的人:0
展开全部
按钮移动,嘛,要相应响应WM_MOUSEDRAG事件,可以重载CButton,然后定义新的按钮变量即可;
按钮的颜色只要在上述的重载里加入属性并重绘即可,可能复杂一些,我有彩色按钮类,颜色相同只要自己制定就行
也可以用WM_MOVE吧,这个具体的你也可以查一下MSDN,上面有很详细的解释!
xiaohuh421
2010-01-02 · TA获得超过904个赞
知道小有建树答主
回答量:897
采纳率:0%
帮助的人:368万
展开全部
也可以用WM_MOUSEMOVE消息函数实现,只是要多用两个变量
我说下过程:
1,定义一个变量 flag;
2.鼠标按下时flag=1,鼠标弹起时flag=2;
3.在WM_MOUSEMOVE函数中,当flag==1是响应这个消息.
4.用((CButton*)(GetDlgItem(IDC_XXXXID)))->MoveWindow(xxx)//参数要自己计算下 IDC_XXXXID这个是按钮ID
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
50573750
2010-01-02 · TA获得超过976个赞
知道大有可为答主
回答量:1800
采纳率:100%
帮助的人:0
展开全部
你的响应WM_MOUSEDRAG时间,就可以了,重载CButton,然后让那个按钮是CNEWButton的对象就行了。

或者,你不是就像做一个像VB、VC一样的功能么?不如自己写一个ActiveX空间,自己绘图,不就行了么?我听说VB、VC也是这么做的。

呵呵。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式