![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VC++(6.0)/MFCにてアプリを開発しています。
メイン画面上にリストボックス・リストビュー・ボタンの各コントロールを配置し、
ユーザがいつでも操作できるようになっています。
そこで、ユーザがリストボックス等をマウスにてスクロール中に、バックグラウンド
処理でモーダルダイアログを表示すると、マウスダウン中に突然フォーカスが失われ
るため操作中のコントロールに対しマウスアップメッセージが送信されずモーダルダ
イアログ側へフォーカスが強制的に移動してしまいます。
操作中のコントロールは、マウスアップイベントが送信されていないため、奇妙な動
きをするようになります。
この場合、画面上の全てのコントロールに適応可能な「フォーカスが失われたよ」的
な処理を実装したいのですが、どのようにすればよいのでしょうか。
現在は、コントロール単位でオーバーライドしてLostFocus等で処理しています。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
参考にしてください。
あしからず勘違いしている人が実に多いのでいつも驚きますが
まずSetFocus()等に関連する「フォーカス」とは
キーボードの入力権なのであって、そもそもマウスとは
関係ありません。マニュアルを確認してください。
マウスメッセージをロストするのは他のウインドウが
マウスをキャプチャしたり、アクティブになったり
するからであって、キーボードフォーカスを
失ったからではありません。従ってこの場合対処すべきメッセージは
WM_CAPTURECHANGEDやWM_ACTIVATEなのです。これらのハンドラで
処理の中止を行うと解決するかもしれません。
整理すると処理すべき、又は、いきなり失う可能性のある
エッセンシャルには、
1.キーボード入力権(キーボードフォーカス)
2.マウスメッセージ占有権(マウスキャプチャ)
3.前面占有権(アクティベート)
があるといえます。それぞれ得た場合と失った場合の処理が
必要な場合があると言えます。
Situgyosyaさん
勉強不足でした。
今まで無理矢理いろんなことをしていたことを後悔しています。
もう少し本筋を勉強しなおすようにします。
エッセンシャルについては大変参考になりました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Android(アンドロイド) microsoft teamsについて 2 2023/05/16 17:07
- その他(OS) Mac OSの操作について 2 2022/06/08 09:19
- マウス・キーボード real vnc viewer で遠隔先で操作が出来ない。 2 2023/07/24 15:00
- Windows 10 画面上の[タスクバー]の位置の変更 1 2022/06/12 21:10
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- Windows 10 (緊急)windowsのタスクバーやアプリ?が反応しない 3 2023/03/28 05:03
- セキュリティホール・脆弱性 論理的アクセス・コントロールに関する問題で悩んでいます 1 2022/10/08 08:42
- デスクトップパソコン ん~…分からん 7 2022/06/10 10:47
- マウス・キーボード Bluetoothのクイックペアリングについて 8 2023/03/25 16:50
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# ReadOnlyのTextBoxで
-
エクセルVBA テキストボックス...
-
どこにもフォーカスを当てたくない
-
GridViewでハイライトを使用し...
-
テキストボックス入力後、警告...
-
コマンドボタンのEnterイベント...
-
他の人には声だして挨拶してる...
-
MFCでコンボボックスを選択不可...
-
ガードレールの高さについて
-
炊飯器のセットの音と出来上が...
-
矢印(左右)キーでイベントを...
-
ユーザーフォームのSetFocusが...
-
OPPO A54 5Gを使っています。 ...
-
VBAのExitイベントについて
-
マイクラのマルチサーバーが起...
-
スプレットシートでフォーカス...
-
コントロールのフォーカスが横...
-
Macの「検索」のハイライト機能...
-
アクセス フォーカスの移動...
-
VBでタッチパネルを・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どこにもフォーカスを当てたくない
-
C# ReadOnlyのTextBoxで
-
業務に差し支えのないテンキー...
-
他の人には声だして挨拶してる...
-
エクセルVBA テキストボックス...
-
矢印(左右)キーでイベントを...
-
コマンドボタンのEnterイベント...
-
ユーザーフォームのSetFocusが...
-
Accessの更新後処理で特定の条...
-
GridViewでハイライトを使用し...
-
VBAのExitイベントについて
-
テキストボックス入力後、警告...
-
『エッジの効いた○○』の意味。
-
VB.NET ボタン押下で一つ前の...
-
フォーカスを移動させない方法
-
スプレットシートでフォーカス...
-
二台のノートパソコンを繋げて...
-
炊飯器のセットの音と出来上が...
-
小学校で遊ぶてんかのルールに...
-
MFCでコンボボックスを選択不可...
おすすめ情報