WPF WndProc的呼叫次数超过一次

时间:2012-10-12 07:12:29

标签: c# wpf

为什么多次调用WndProc,当设备插入时,例如USB,WndProc被调用四次:

 protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);
            IntPtr windowHandle = (new WindowInteropHelper(this)).Handle;
            HwndSource src = HwndSource.FromHwnd(windowHandle);
            src.AddHook(new HwndSourceHook(WndProc));
        }

        private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
            {
// Handle WM_DEVICECHANGE
            if (msg == 0x0219)
            {

谢谢

1 个答案:

答案 0 :(得分:0)

是的,它确实如此,但您可能会注意到wParam& lParam。对于每个事件WndProc将从OS接收消息。 msg之后的其他参数值将让您知道它们被引发的上下文。