如何使用Win32 API右键拖动
How to right button drag with Win32 API?
我实现了IDropTarget接口;drop(资源管理器中的文件)运行良好。
当我拖动&用鼠标右键放下一个文件,上下文菜单不会弹出。
所以我认为我有责任显示上下文菜单,
但在IDropTarget::Drop方法中,(grfKeyState&MK_RBUTTON)始终为0。
我怎么知道拖动鼠标按钮是否正确?
有没有一种特殊的方法来显示菜单并在下拉后接收选择?
(我更喜欢Win32 API方式,我不使用MFC。)
我猜(grfKeyState & MK_RBUTTON
)总是0,因为当调用Drop()
方法时,鼠标按钮已经释放(您刚刚放下),所以键盘/鼠标状态标志自然会指示它确实释放了。
您可以(根据文档,应该)做的是,在处理DropEnter()
时,提前决定对Drop()采取的行动。我自己还没有尝试过,但我确信应该在那里设置MK_RBUTTON标志。您可以在调用放置目标的DropEnter()
方法时检查该标志,保存该标志,然后在调用Drop()
时自己打开上下文菜单。这不是最干净的解决方案,但我不知道是否有办法让Windows为您显示上下文菜单。
相关文章:
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- 如何在鼠标挂钩过程中检测拖动
- 如何通过拖动鼠标QT检查按钮?鼠标移动事件
- 如何将我的程序添加到文件和文件夹的macOS右键单击菜单?
- 如何防止特定的QTreeView分支被拖动?
- 通过拖动边框调整大小时不显示SDL_WINDOWEVENT_SIZE_CHANGED?
- Qt - 右键单击时编辑按钮文本
- 在 qt 中的绘图中拖动误差线
- 非拖动功能模板参数包的合法使用
- QML在被Mousearea拖动时无法更改项目位置
- 在OpenGL中,如何将鼠标跟随更改为鼠标单击,拖动并移动释放?
- 如何在 Win32 应用中拖动纯色矩形,而不会产生白色闪烁,也不会干扰其他屏幕对象
- 如何处理鼠标右键单击qsystemtrayicon
- 图形项目的QgraphicsScene中的可拖动像素
- Qt - 防止在拖动标题栏时调整窗口大小
- 当右键单击时,来自Menubar的Popupmenu
- 在内部使用ComboBox拖动ListWidget项目
- 使用SwapMouseButton(TRUE);允许右键拖动窗口
- 如何使用Win32 API右键拖动
- 如何通过一定的组合键+鼠标移动来调整窗口大小?(如 Linux 中的 Alt+F8)不要单击并拖动