我有另一个关于事件和焦点的 wxWidgets 问题。
我已经在这里查看了教程和这个老问题,但我仍然遇到问题C++ 事件(焦点)处理
基本上我有一个包含两个 wxTextCtrl 元素和一个按钮的对话框。我想要实现的是,当我单击按钮时,它需要告诉我两个元素中的哪一个先前具有焦点。
在我的对话框的构造函数中,我创建了所有元素,然后将它们连接到事件处理程序,如下所示:Ttop->Connect(TOP,wxEVT_KILL_FOCUS,(wxObjectEventFunction)&UI_ADDENTRY::hasfocus);
Tbottom->Connect(BOTTOM,wxEVT_KILL_FOCUS,(wxObjectEventFunction)&UI_ADDENTRY::hasfocus);
然后有一个事件处理程序可以确保 id 成为焦点
void UI_ADDENTRY::hasfocus(wxFocusEvent& event){
focus= event.GetId();
event.Skip();}
但是,当我尝试在 Button 函数中访问焦点时,它总是告诉我:0 而不是 TOP 或 BOTTOM / 我给 textcontrols 的 id
void UI_ADDENTRY::OnRecord(wxCommandEvent &event){
wxString tmp;
tmp << this->focus;
wxMessageBox(tmp);}
我究竟做错了什么?有没有另一种方法可以找出两个文本框中的哪一个最后成为焦点?
谢谢