如何使用Win32 API右键拖动?

| 我实现了IDropTarget接口,并且拖放(来自资源管理器的文件)效果很好。 当我用鼠标右键拖放文件时,上下文菜单不会弹出。 因此,我认为显示上下文菜单是我的责任, 但是在IDropTarget :: Drop方法中,(grfKeyState&MK_RBUTTON)始终为0。 我怎么知道鼠标拖动按钮是否正确? 有没有一种特殊的方法来显示菜单并在下拉菜单后接收选择? (我更喜欢Win32 API的方式,我不使用MFC。)     
已邀请:
        我猜(
grfKeyState & MK_RBUTTON
)始终为0,因为调用
Drop()
方法时,鼠标按钮已经释放(您刚放下鼠标)-因此,键盘/鼠标状态标志自然会表明它确实已释放。 您可以做的(根据文档,应该做的)是预先确定处理
DropEnter()
时对Drop()采取的处理措施。我自己还没有尝试过,但是我很确定应该在此处设置MK_RBUTTON标志。您可以在调用放置目标的
DropEnter()
方法时检查该标志,保存该标志,然后在调用
Drop()
时自己打开上下文菜单。这不是最干净的解决方案,但是我不知道是否有一种方法可以使Windows为您显示上下文菜单。     

要回复问题请先登录注册