2009-06-10 5 views
4

Microsoft Outlook 2003ウィンドウにWPFアプリケーションが埋め込まれています。私のTextBoxコントロールのどれもがバックスペースキーを受け入れることを除いて、すべてうまくいっています。私はいくつかの研究を行って、問題が存在するのは、私のウィンドウがOutlookウィンドウの子であり、それが別のウィンドウではない場合だけです(私はそれをfirefoxに注入し、うまく動作し、wpf UserControlをダイアログウィンドウそれも動作します)。これは、人々が(テキストボックスのみ削除/矢印キーを受け入れることは/ etc)を報告している逆の問題であると思われ、このスレッドは(ただし、私の問題を解決しませんでした)やや有益だった:WPF TextBox not accepting Input when in ElementHost in Window FormsWPF TextBoxが削除キーを受け入れない

ここに私の設定です: 私はWPF UserControlを作成し、それをElementHostに配置します。そのホストをWindows FormsのUserControlに入れます。これは別のForms UserControlに入れられ、NativeWindowに入れられます(UserControlラッピングの一部を削除しようとしましたが効果がありません)。このネイティブウィンドウはOutlookウィンドウの子になり、Outlookに必要な場所に配置されます。

誰にも分かりませんか?たぶん私はWindowsのメッセージを別の方法で処理する必要がありますか?私はいくつかの調査を行い、バックスペースキーを押すとOutlookがWM_COMMANDメッセージを受け取るが、何もヒットしなかったときはOutlookがメッセージを受け取ることがわかった。バックスペースキーをメニューアクセラレータなどと解釈しているのでしょうか?

ありがとうございました。

答えて

1

これを回避する方法が見つかりました。 OutlookのWndProcを拡張し、WM_COMMANDを聞いた。 WPF UserControlシステムは、キーボードフォーカスコントロールにバックスペースキーを送信するように指示します。

私は、バックスペース以外の他のキーを押してもWM_COMMANDが発射されるようには見えないので、今のところうまくいきます。

+0

興味のある方は、WParamの値を比較するか、イベントがまったく発生したかどうかだけを確認していますか?このソリューションはまだあなたのために正しく動作していますか? :-) – traskjd

+0

WM_COMMANDでバックスペースを送信するだけで問題なく動作しました。しかし、Ctrl-Zもバックスペースを起動しますが、元に戻すときに文字を削除しているので気づきにくいです。私の考え:私はそれが働いて、私は実際には問題について心配する他のものがあり、まだ解決されていない:) – Max

関連する問題