0

为什么 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)
            {

谢谢

4

1 回答 1

0

是的,确实如此,但是您可能会注意到不同的 wParam& lParam。对于每个事件WndProc都会收到来自操作系统的消息。之后的其他参数值msg将让您知道引发它们的上下文。

于 2012-10-12T07:14:46.577 回答