2
我需要他們被傳遞到Widget的標準處理程序之前截獲的幾個事件,所以我已經這樣做了:如何使用傳遞給Gdk.Window.AddFilter的FilterFunction?
//Inside the definition of my custom widget
protected override void OnRealized()
{
base.OnRealized();
this.GdkWindow.AddFilter(PreFilterMessage);
...
}
所以,後來我定義PreFilterMessage方法:
public Gdk.FilterReturn PreFilterMessage(IntPtr xEvent, Gdk.Event evnt)
{
Console.WriteLine(evnt.Type);
...
}
但事情是,當我測試它時,無論什麼消息到達窗口(KeyEvent,ButtonEvent等),它總是打印出「Nothing」,所以我只是每次都收到空的事件。我讀過的地方是真實的信息通過xEvent參數獲得,但這只是一個IntPtr,所以我不知道如何從中獲取我需要的信息(事件類型,指針座標等)。
誰能告訴我如何做到這一點?提前致謝。