关于拖动列表框通知消息

【勇芳软件工作室】汉化HomePreviousNext

拖动列表框以拖动列表消息的形式发送其父窗口通知消息。由DRAGLISTINFO结构的uNotificationit成员确定的具体通知可以是DL_BEGINDRAGDL_DRAGGINGDL_CANCELDRAGDL_DROPPED.

当用户单击鼠标左键,光标在列表项上时,将发送DL_BEGINDRAG通知消息。父窗口可以返回TRUE开始拖动操作,FALSE可以禁止拖动。以这种方式,父窗口可以启用拖动某些列表项,并禁用其他列表项。您可以使用LBItemFromPt功能确定哪个列表项在指定位置。

如果拖动有效,则只要鼠标移动,或者如果鼠标未被移动,则会定期发送DL_DRAGGING通知消息。父窗口应使用LBItemFromPt确定光标下的列表项,然后使用DrawInsert功能绘制插入图标。通过为LBItemFromPt【bAutoScroll】参数指定TRUE,如果光标位于其客户区域的上方或下方,则可以使列表框滚动一行。您为此通知返回的值指定拖动列表框应设置的鼠标光标的类型。

如果用户通过单击鼠标右键或按ESC键取消拖动操作,则会发送DL_CANCELDRAG通知消息。如果用户通过释放鼠标左键完成拖动操作,即使光标不在列表项上也会发送DL_DROPPED通知消息。拖动列表框在发送通知之前释放鼠标捕获。这两个通知的返回值将被忽略。