当用户在 RichEdit 字段的一个位置抓取图像,将其拖动到另一个位置,然后将其放在那里时,我需要跟踪一个事件。
但是在那些情况下,当用户按下鼠标左键,按住鼠标并将鼠标移动到其他地方的某个地方时,WM_LBUTTONUP消息不会在 RichEdit 过程中触发,因此我无法获得用户"放置"图像的时刻。
那么,我应该如何检测 RichEdit 控件中的WM_LBUTTONUP或拖放事件呢?
根据 MSDN,您必须使用 EM_SETEVENTMASK
消息设置 ENM_DRAGDROPDONE
标志,然后您将收到WM_NOTIFY
中的EN_DRAGDROPDONE
。
当窗口/控件不支持拖放时,您通常会在按钮向下消息中子类化并使用SetCapture
,以便您收到有关稍后在窗口外发生的鼠标消息的通知......