【VC++】求编程思路,想做一个随鼠标移动的矩形框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【VC++】求编程思路,想做一个随鼠标移动的矩形框相关的知识,希望对你有一定的参考价值。

做一个对话框程序,设置一个静态控件,可以实现打开bmp位图的功能,在静态控件中显示出来,当鼠标移动到改图片上时,会跟随鼠标出现一个小矩形框。 现在的问题是,图片的显示应该放在那个函数中呢?是OnPaint()函数中吗?鼠标的移动并伴随矩形框应该在OnMouseMove中吗? 我做出的程序,无法实现图片的重绘,就是鼠标移动过的地方,矩形框还留在上面,无法消除,怎么办呢

参考技术A 使用光标资源……嘿嘿
判断鼠标到达图片位置
把这句放在WM_PAINT消息
if(XXX)

LoadCursor…………

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

对话框上放置一个button ,当鼠标左键单击这个button并持续按下鼠标左键在对话框上移动时,button能随着鼠标的移动而移动即鼠标到哪button就到哪,
当松开鼠标左键时,button停止移动,且button无单击状态变化。这个怎么实现呀,能给出代码参考吗?另外,在对话框以蓝色填充一块矩形,要求button表面上也是这种颜色,但是能正常显示出文字,在拖动button的时候颜色要一直是蓝色,且button要时时可见。有劳大侠们指教了。
VC6中没有WM_MOUSEDRAG呀

按钮移动,嘛,要相应响应WM_MOUSEDRAG事件,可以重载CButton,然后定义新的按钮变量即可;
按钮的颜色只要在上述的重载里加入属性并重绘即可,可能复杂一些,我有彩色按钮类,颜色相同只要自己制定就行
也可以用WM_MOVE吧,这个具体的你也可以查一下MSDN,上面有很详细的解释!
参考技术A 也可以用WM_MOUSEMOVE消息函数实现,只是要多用两个变量
我说下过程:
1,定义一个变量 flag;
2.鼠标按下时flag=1,鼠标弹起时flag=2;
3.在WM_MOUSEMOVE函数中,当flag==1是响应这个消息.
4.用((CButton*)(GetDlgItem(IDC_XXXXID)))->MoveWindow(xxx)//参数要自己计算下 IDC_XXXXID这个是按钮ID
参考技术B 你的响应WM_MOUSEDRAG时间,就可以了,重载CButton,然后让那个按钮是CNEWButton的对象就行了。

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

呵呵。。。

以上是关于【VC++】求编程思路,想做一个随鼠标移动的矩形框的主要内容,如果未能解决你的问题,请参考以下文章

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

VC++随鼠标移动显示坐标和坐标映射模式学习

网页设计——颜色随数值大小渐变!

C# GDI绘制矩形框,鼠标左键拖动可移动矩形框,滚轮放大缩小矩形框

请问js高手,我想做一个动态的消息提示框,但是用绝对定位的提示框会随滚动条的移动被遮挡?

VC/MFC 无边框鼠标拉伸改变窗口大小