在2个CEdit之间用鼠标拖放来复制内容,触发的好象不是WM_COPY、WM_PASTE和WM_DROPFILES消息,那是什么消息?
在2个CEdit之间用鼠标拖放来复制内容,触发的好象不是WM_COPY、WM_PASTE和WM_DROPFILES消息,那是什么消息?
我的程序里有一个CListCtrl,CListCtrl的每列有一个CEdit,当鼠标点击某行时,这列的
CEdit上下移动到这个单元格,所以可以编辑CListCtrl的单元格。
现在要禁用在2个CEdit之间用鼠标拖放来复制内容,请问怎么做?我想过滤拖放消息,但不知道是什么消息?好象不是WM_COPY、WM_PASTE和WM_DROPFILES。
因为我这样做(代码如下)照样能拖动鼠标时在单元格间拷贝数据,不过CTRL+C CTRL+V能够过滤掉。
这就说明了拖动鼠标时在单元格间拷贝数据不是触发的WM_COPY、WM_PASTE消息。
我怀疑也不是触发的WM_DROPFILES。因为这种拖放是不出现拖放的虚框图形的,但在资源管理器里拖放东西时会出现拖放的虚框图形。况且下面的代码也没有禁止拖动鼠标时在单元格间拷贝数据。
代码如下:
LRESULT CListCellEdit::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if(message == WM_COPY) // 能过滤掉CTRL+C 操作
{
return FALSE;
}
if(message == WM_PASTE) // 能过滤掉 CTRL+V操作
{
return FALSE;
}
if(message == WM_DROPFILES)// 不能禁止拖动鼠标时在单元格间拷贝数据
{
return FALSE;
}
return CEdit::WindowProc(message, wParam, lParam);
}
大家可以参考帖子:
http://community.csdn.net/Expert/topic/4588/4588744.xml?temp=.8014643
问题点数:40、回复次数:6Top
1 楼scutcs(做人一定要厚道)回复于 2006-03-04 00:17:29 得分 1
不是?那是什么?Top
2 楼vcmute(BCare4 H1Rest Good9!)回复于 2006-03-04 09:22:26 得分 3
dragbegin
dragendTop
3 楼wushuiyu(无水鱼)回复于 2006-03-04 10:15:55 得分 3
你说的有可能是OLE拖放Top
4 楼deutsch(人民)回复于 2006-03-04 12:41:29 得分 3
WM_COPYDATA?Top
5 楼nodefault(永不言败)回复于 2006-03-04 15:18:34 得分 0
我是楼主!
问题解决了!根本不是消息造成的。是点单元格并不总是触发OnClick()造成的,比如点下鼠标左键后不松开,然后拖开。
感谢striking(硬撑者)帮我忙调试。
等待striking(硬撑者)回帖!!!Top
6 楼striking(庸人自扰)回复于 2006-03-07 15:46:07 得分 30
来了.最好贴个聊天记录出来.免得有人怀疑,呵呵.Top




