0

WndProcが複数回呼び出される理由、たとえばUSBなどのデバイスがプラグインされている場合、WndProcは4回呼び出されます。

 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、OS からメッセージを受け取ります。後の他のパラメーター値msgは、それらが発生したコンテキストを知らせます。

于 2012-10-12T07:14:46.577 に答える