I coded this junk:
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
class SmartWebBrowser : WebBrowser
{
private const int WM_LBUTTONDOWN = 0x0201;
private const int WM_LBUTTONUP = 0x0202;
private const int WM_LBUTTONDBLCLK = 0x0203;
private const int WM_RBUTTONDOWN = 0x0204;
private const int WM_RBUTTONUP = 0x0205;
private const int WM_RBUTTONDBLCLK = 0x0206;
private const int WM_MBUTTONUP = 0x0208;
private const int WM_MBUTTONDOWN = 0x0209;
public override bool PreProcessMessage(ref Message msg)
{
bool allow_propagation = true;
switch (msg.Msg)
{
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_LBUTTONDBLCLK:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
case WM_RBUTTONDBLCLK:
case WM_MBUTTONUP:
case WM_MBUTTONDOWN:
allow_propagation = false; //breakpoint here
break;
}
if (allow_propagation)
return base.PreProcessMessage(ref msg);
else
return false;
}
protected override void WndProc(ref Message msg)
{
bool allow_propagation = true;
switch (msg.Msg)
{
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_LBUTTONDBLCLK:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
case WM_RBUTTONDBLCLK:
case WM_MBUTTONUP:
case WM_MBUTTONDOWN:
allow_propagation = false; //breakpoint here
break;
}
if (allow_propagation)
base.WndProc(ref msg);
}
}
}
But breakpoints never trigger. What I doing wrong? Overriding WndProc for such things is common practice, but no work here.
I trying to stop clicks propagation to document, so user can scroll it, but can't interact with it via clicks.