2015-10-10 131 views
0

我想知道如果下面是可能实现的,如果有什么是一个良好的开端中的事件有:跟踪另一个事件

我有一个wxGrid其中有事件,其他人,OnGridCmdEditorShown和中wxMouseEvent OnLeftDown。当我开始编辑一个单元格时,OnGridCmdEditorShown被激活,直到我按下回车键或点击另一个单元格。但是,我想要做的是当我仍然在编辑单元格(在OnGridCmdEditorShown事件中)我想要从OnLeftDown获得点击。换句话说,OnLeftDown不应该终止OnGridCmdEditorShown事件。为了让你更清楚地看到你可以想到MS Excel在输入公式时所做的事情:我们正在编辑一个单元,同时我们仍然可以点击不同的单元格。

我可能是错的,但总的来说,我猜,我的问题是我如何控制事件中的另一个事件,比如控制OnGridCmdEditorShown中的OnLeftDown。我想可能是在OnGridCmdEditorShown中创建一个线程或者有一个事件循环可能是一个好主意,但我对这两者都不是很熟悉。

任何想法与简单的示例代码将不胜感激。

问候

回答

1

的唯一可能做你想要与现有wxGrid,我看到的是定义捕获鼠标,而这是积极的自定义编辑器控制。我实际上并没有尝试这样做,但我认为它应该起作用。

我不知道你怎么允许用户取消编辑使用鼠标,如果你做到这一点...

+0

其实,我尝试了类似的想法,例如通过'连接重定向鼠标点击的事件GridCellChange( wxEVT_GRID_CELL_LEFT_CLICK,wxGridEventHandler(mygrid :: OnGridCellChange),NULL,this);'。由于我无法将wxKeyEvent重定向到网格事件,因此处理关键事件成为一个问题,并将鼠标单击重新路由到其原始状态。 相反,我会尝试继承'wxGridCellEditor',然后将编辑单元的编辑器设置为新的。不知道这是否会奏效,但似乎有希望。 – macroland