問題タブ [onkillfocus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - MFC での OnKillFocus() のオーバーライドが奇妙なタイミングでトリガーされる
Window がいつ入力フォーカスから外れるかを知る必要があるため、CWnd の OnKillFocus() メソッドをオーバーロードしました。
ただし、別のアプリケーション (alt+tab) にフォーカスしたり、ウィンドウを最小化したりしても、このメソッドは呼び出されません。しかし、最小化から復元すると、メソッドが呼び出されます。これらは、このメソッドをトリガーする意図された時間ですか?
c++ - Windows7でのSetCurSel後のMFCCComboBoxOnKillFocus / ShowDropDown
ご存知かもしれませんが、CComboBox(DropDownListスタイル)は、コンテンツを自動ソートしない場合にのみ、入力することによって適切に選択します。意味の例を次に示します。A、Bの順に入力します。自動並べ替えが行われていない場合は、最初にAで始まる次のエントリを選択し、次にBで始まる次のエントリを選択します。並べ替えられている場合は、次のエントリを選択します。 Aで、次はABで始まります。
CComboBoxから継承するクラスがあり、そのコンテンツは組み込みの並べ替えメカニズムによって並べ替えられません。タイピングによる適切な選択動作が必要だったので、それを自分で実装しました。SetCurSelを使用してエントリを選択し、CBN_SELCHANGEメッセージを親ウィンドウに送信します。
Windows XPでは、これは完全に正常に機能しました。現在Windows7を使用していますが、次の問題が発生しています。マウスを使用してドロップダウンリストを開き、入力してエントリを選択し、Tabキーを使用して次のコントロールにジャンプすると、最初に選択した値は次のようになります。自動的に再選択されます。
OnKillFocusを上書きして、次のようにした場合:
それは一般的に機能しますが、しばらくの間、古い選択された値がまだ点滅し、醜いです。
CComboBox :: OnKillFocus()を呼び出さない場合、正しいエントリが選択されたままになりますが、コンボボックスはドロップダウンされたままになります。
したがって、次の試みはSetDropDown(FALSE)を手動で呼び出すことでした(OnKillFocus()では他に何もありません)が、その後問題が再発します。
したがって、ドロップダウンリストを開くと、現在の選択が内部に保存されていると思います。SetCurSelを呼び出しても、この内部値は更新されません。そして、タブアウトすると、その内部値が再度選択されます。
この問題を解決する方法はありますか?
c++ - 別のウィンドウを選択するときに CDialog-Window に通知する
クリックすると、別のアプリケーションのウィンドウのタイトルがメッセージ ボックスに表示されるダイアログ ベースの MFC ツールを入手しました。私の問題は、ここで WM_KILLFOCUS が機能しないことです。多分私はそれを間違っています。私は次のことを行います:
何が問題なのですか?
c++ - MFC コンボボックスの killfocus が機能しない
combobox
メンバー変数としていくつかの es を含むダイアログ ボックスがあります。combobox
コントロール ウィザードを使用すると、メッセージの es のハンドラーを作成できCBN_KILLFOCUS
ます。たとえば、そのようなハンドラーの 1 つが自動的に呼び出されます。
私の期待は、このハンドラーは、タブから出るとすぐに呼び出されることです。しかし、それは呼び出されません。