如何在wxTextCtrl中接收放置事件?

发布于 2024-08-17 07:33:59 字数 221 浏览 7 评论 0原文

我有一个 wxTextCtrl 派生类,它重写 OnDropFiles。但是,在控件上拖动某些内容不会执行任何操作。 (光标更改为“不允许”光标。)我尝试了 DragAcceptFiles(true) 但仅启用了内置放置处理程序。 (这只是将文件加载到控件中。)如何调用我自己的处理程序?

我也尝试过 SetDropTarget,但也从未被调用。不过它在 wxFrame 中工作。

有什么想法吗?

I have a wxTextCtrl-derived class that overrides OnDropFiles. However, dragging something over the control does nothing. (The cursor changes to the 'not allowed' cursor.) I tried DragAcceptFiles(true) but that only enabled the built-in drop handler. (Which just loads the file into the control.) How can I get my own handler to be invoked?

I also tried SetDropTarget, but that never got invoked either. It worked in a wxFrame, though.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

囍孤女 2024-08-24 07:33:59

这是我的一个项目中的精简版本:

我的表单代码

wxTextCtrl* textctrl = new wxTextCtrl(...);
textctrl->SetDropTarget(new DropFiles(textctrl));

dropfiles 类

class DropFiles: public wxFileDropTarget{
public:
    DropFiles(wxTextCtrl *text): m_Text(text){}
    bool OnDropFiles(wxCoord x, wxCoord y, const wxArrayString& arrFilenames);

private:
    wxTextCtrl *m_Text;
};

bool DropFiles::OnDropFiles(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), const wxArrayString& arrFilenames){
    //Just take the first filename
    m_Text->SetValue(arrFilenames.Item(0));
    return true;
}

希望有帮助!

This is a stripped down version of what I have in one of my projects:

My form code

wxTextCtrl* textctrl = new wxTextCtrl(...);
textctrl->SetDropTarget(new DropFiles(textctrl));

The dropfiles class

class DropFiles: public wxFileDropTarget{
public:
    DropFiles(wxTextCtrl *text): m_Text(text){}
    bool OnDropFiles(wxCoord x, wxCoord y, const wxArrayString& arrFilenames);

private:
    wxTextCtrl *m_Text;
};

bool DropFiles::OnDropFiles(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), const wxArrayString& arrFilenames){
    //Just take the first filename
    m_Text->SetValue(arrFilenames.Item(0));
    return true;
}

Hope that helps!

倾城°AllureLove 2024-08-24 07:33:59

您必须处理 EVT_DROP_FILES 事件。任何其他获取通知的尝试都会失败:(

You have to handle the EVT_DROP_FILES event. Any other attempt to get notified will fail :(

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文