如何在IE扩展中启用退格键

时间:2014-09-02 14:10:25

标签: c# .net internet-explorer com-interop

我使用this project中使用的接口开发了Internet Explorer扩展。除了在扩展期间进行退格捕获外,所有事情都能完美地完成。我尝试过更改IInputObject接口方法,但没有运气。任何解决此问题的建议。

我使用的IInputObject方法如下所示。说实话,我不太了解这是如何工作的,如果有人能够解释这个过程,那将是一个很大的帮助。

public void UIActivateIO(int fActivate, ref NativeMethods.MSG msg)
        {
            if (fActivate != 0)
            {
                Control nextControl = base.GetNextControl(this, true);
                if (Control.ModifierKeys == Keys.Back)
                {
                    nextControl = base.GetNextControl(nextControl, false);
                }
                if (nextControl != null)
                {
                    nextControl.Select();
                }
                base.Focus();
            }

        }

        public int HasFocusIO()
        {
            if (!base.ContainsFocus)
            {
                return 1;
            }
            return 0;
        }

        public int TranslateAcceleratorIO(ref NativeMethods.MSG msg)
        {
            if ((msg.message == 256) && ((msg.wParam == 9) || (msg.wParam == 117)))
                if (base.SelectNextControl(
                    base.ActiveControl,
                    Control.ModifierKeys != Keys.Back,
                    true,
                    true,
                    false))
                {
                    return 0;
                }

            return 1;

        }

Backspace正在使用shift键,但我想让它在没有修饰符的情况下工作。我在this project中看到他们使用TranslateMessage (ref msg);DispatchMessage (ref msg);来实现这一点。我也试过但没有运气。任何帮助解决这个问题都会很棒。 (我对IInputObject方法所做的大部分更改似乎都没有影响,例如:修改键的更改不受影响。这是我面临的另一个问题。)

0 个答案:

没有答案