Delphi - Pascal:在拖放到表单之前检测拖动文件事件

问题描述 投票:0回答:2

我正在尝试为 Windows 创建一个应用程序。 在我的应用程序中,当将项目文件从 Windows 资源管理器拖动到 FormOne,然后 FormOne 将调用 FormSecond show 和 Drop Items on FormSecond。 我的问题是:我为 FormSecond 编写代码来处理接收到的文件很好。但是在 FormOne 上,我不知道如何在 FormOne 上捕获拖动事件鼠标以显示 FormSecond。

请大家帮帮我!!! 对不起,我的英语不好!

delphi pascal
2个回答

0
投票

当用户将文件从 Windows 资源管理器拖到 TForm 上时,有两种不同的处理方式:

  1. 让表单 1) 调用

    DragAcceptFiles()
    ,或 2) 覆盖其虚拟
    CreateParams()
    方法以启用
    WS_EX_ACCEPTFILES
    窗口样式。然后让表单捕捉
    WM_DROPFILES
    窗口消息。消息的
    wParam
    值是一个
    HDROP
    句柄,您可以将其传递给
    DragQueryFile()
    DragQueryPoint()
    DragFinish()
    API。

  2. 编写一个实现

    IDropTarget
    接口的类,然后让Form将该类的一个实例传递给
    RegisterDragDrop()

© www.soinside.com 2019 - 2024. All rights reserved.