高手赐教,怎样实现这样的控件拖放?
qybao 2003-12-30 03:21:59 窗体的控件可以随意拖放,而且所有容器支持控件拖放(前提),
现在我想通过SendMessage发送消息实现该控件的拖放,
请问如何实现?
比如,窗体中的某个按钮(Button)在一个面板(Panel)上,
我现在知道该按钮(Button)的句柄,Panel的句柄可要可不要(我认为),
我想用SendMessage发送消息,使得按钮(Button)拖动到另一个面板(Panel)上,这个面板(Panel)的句柄也是可要可不要(我认为)。
本人的想法是这样的:
1.先给按钮(Button)发送鼠标左键按下的消息 WM_LBUTTONDOWN
2.然后再发送鼠标移动的消息 WM_MOUSEMOVE 把鼠标移到另一个面板(Panel)上
3.最后再发送鼠标左键释放消息 WM_LBUTTONUP
问题是发送鼠标移动消息的时候,什么反应也没有,不知道 WM_MOUSEMOVE 这个消息是如何发送的,而且我查看过帮助,发送该消息时,可以再带个参数 MK_LBUTTON ,这样可以在移动的时候同时也按住鼠标左键,是这样吗?
本人还想过另一种方法:
就是把按钮剪贴到剪贴板上,然后再从剪贴板复制到另一个面板上,这样会有什么问题吗?不过这样就需要知道目标面板(Panel)的句柄,而根据现有的条件,本人有可能无法获得目标Panel的句柄,因为是别人写的程序,里面的Panel很多,而且也没有相关的字符串标识(text,name或caption没有),但如果是鼠标拖动的话,可以找到位置(因为有相对位置)。
还望各位高手指点一下如何实现,或者给点思路和意见,分不够可以再加!