<00001> 00070356 S WM_MOUSEACTIVATE hwndTopLevel:000B0352 nHittest:HTCLIENT uMsg:WM_LBUTTONDOWN
<00002> 00070356 R WM_MOUSEACTIVATE fuActivate:MA_ACTIVATE
<00003> 00070356 P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:25 yPos:15
<00004> 00070356 P WM_LBUTTONUP fwKeys:0000 xPos:25 yPos:15
<00005> 00070356 S WM_MOUSEACTIVATE hwndTopLevel:000B0352 nHittest:HTCLIENT uMsg:WM_LBUTTONDOWN
<00006> 00070356 R WM_MOUSEACTIVATE fuActivate:MA_ACTIVATE
<00007> 00070356 P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:25 yPos:14
这是使用Spy++对RichEdit的鼠标事件的监视(排除了WM_SETCURSOR和WM_MOUSEMOVE),00001-00004是普通的一次鼠标点击,结果也符合预期,WM_LBUTTONDOWN 和 WM_LBUTTONUP 消息成对出现。00005-00007是对选中文本进行了拖拽(期间:先LBUTTONDOWN 后 LBUTTONUP ),但是操作系统只给RichEdit发送了WM_LBUTTONDOWN 消息,WM_LBUTTONUP没有发送。莫名其妙!哪位高手知道怎么回事,请指教。
我没写清楚吧,情况是这样:拖拽都完成了,mouse当然已经up了。但是WM_LBUTTONUP没有被发送。
个人猜想这个我看就是因为拖拽的原因吧
已经不是简单的鼠标放开的处理了被其他的消息先处理了(这个处理顺便就把UP该做的额事做了) 然后绕过了没发送UP的消息 要不你不选择文本 直接拖拽鼠标试试应该有UP消息发送你这拖动的是一个定义好的“块”可能就转发的别的消息处理的吧我完全想象的 这块我也不熟悉
在客户区。各位用写字板和Spy++做一次测试就知道了。