データ認識コントロールを含むフォームがタイトル バーから閉じられ、アクティブなコントロールのデータが変更されている場合、その変更が基になるデータ ソースに反映されないことに気付きました。私はこれを CM_EXIT メッセージがコントロールに対して決して発火しないことにたどり着きました。
どのコントロールが最後にフォーカスされていたとしても、これらの変更がデータ ソースにプッシュされるようにするにはどうすればよいですか?
データ認識コントロールを含むフォームがタイトル バーから閉じられ、アクティブなコントロールのデータが変更されている場合、その変更が基になるデータ ソースに反映されないことに気付きました。私はこれを CM_EXIT メッセージがコントロールに対して決して発火しないことにたどり着きました。
どのコントロールが最後にフォーカスされていたとしても、これらの変更がデータ ソースにプッシュされるようにするにはどうすればよいですか?
参考までに。コントロールを強制的に終了させるクロスプラットフォームの方法は次のとおりです。
SelectNext(ActiveControl, True, True);
これは、同じ親コンテナー内に少なくとも 1 つの他の兄弟を持つコントロールに対して機能します。
OnClose
イベント ハンドラーに以下の行を追加するだけです。
Perform(WM_NEXTDLGCTL, 0, 0);
フォーカスを次のコンポーネントに移動させTabOrder
、現在のコンポーネントからフォーカスを削除することで、値をフィールドに送信します。