>>308
結論を書いておきますと、原因は自作常駐アプリ
にありました。MFCのOnIdleハンドラの
中でSetFocusしていたことが直接の原因
でした。但し、それでFocusが不用意に
移動するのは問題であるとしても、なぜ、
そうした後でWindowsのデスクトップ下部
のタスクバーやデスクトップアイコンまで
操作不能になっていたのかは不明です。
ちなみに、OnIdleの中でSetFocusされるのは、
その自作常駐アプリが対象としている
ディレクトリの中身に変化が起きたときです
ので、頻度は高くなく、数分に一回程度です。
それ以外のタイミングでは何もしません。
また、SetFocusは、ListCtrlに対してのもので、
予め GetFocus() == &m_ListClrl のような
判定ロジックが成り立っていた場合にのみ、
後で再度m_ListCtrl.SetFocus()する
ようなものでした。なぜそうしているかと
いうと、ListCtrlに追加している途中が画面に
反映されると遅くなるので、一端、m_ListCtrl
を ShowWindow()でSW_HIDE してから、
m_ListCtrlにアイテムを追加し、最後に
SW_SHOW し直しているのですが、
SW_HIDEすると、Focusがなくなってしまうためです。
なので、最初にFocusが有った場合に限っては、
Focusし直す、というロジックでした。