我試圖通過IMessageFilter
和PreFilterMessage
捕捉我的應用程序控件上的單擊事件。但我只能實現捕捉鼠標點擊,而不是控制事件。使用MessageFilter在控件上捕獲單擊事件
在我的應用程序中,我需要來自控件的消息來記錄控件的名稱和類型。
我用下面的代碼來捕獲鼠標事件與if (m.Msg >= 513 && m.Msg <= 515)
:
public class TestMessageFilter : IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
// Filter click events with a message number ?
if (m.Msg == ?)
{
// Log stuff
}
return false;
}
}
有沒有辦法趕上點擊與IMessageFilter或其他過濾器的事件?
您可以製作自定義事件並通過它發送數據。 – Kim
這個應用程序很大,需要很長時間來修改應用程序內的所有控件。我們使用「標準」事件,所以我認爲我只是在過濾器上丟失了某些東西(可能是正確的消息編號或名稱)。 – Mualig
您無法通過過濾消息泵來獲取託管事件。你的消息過濾器只能給你一個點擊事件:之後你需要檢查當前的光標座標並自己找到點擊的控件。 – Groo