XP VS2005 MFCです。
タスクバーが常に最前面設定で且つ、任意のウィンドウ(エクスプローラなど何でも可)の
一部がタスクバーの後ろに隠れている状況とします。
ダイアログを作成し(モーダル/モードレスは問わない)、
同ダイアログを、MoveWindow(0,0,画面全体領域.幅, 画面全体領域.高さ)
などで画面全体に表示した際、タスクバーは常に最前面設定しているにも関わらず、
最背面に表示されるようになり、タスクバーに隠れていたウィンドウについても
表示されるようになってしまいます(状態A)
タスクバーをクリックするなどすると、再描画がかかるのか、
再びタスクバーが最前面に表示されます。
状態Aで::UpdateWindow(<タスクバーハンドル>)としても変化はありません。
また、画面下部にタスクバーがあることを前提とした場合、
ダイアログに対しMoveWindow(0,0,画面全体領域.幅, (面全体領域.高さ -1) )
のように、タスクバーがから若干ダイアログが外れるようにすると、
この現象はおきず、タスクバーの最前面オーダーは保たれたままになります。
なぜこのような現象が起きるのでしょうか?
また、この現象を回避
(ダイアログを画面全体表示にした際にも、タスクバーは常に最前面に表示される)
するにはどのようにすればよいでしょうか?
もう見ていないかもしれませんが。
おそらくナナンさんが仰る「画面全体領域」は「デスクトップサイズ」の事で
たしか「デスクトップサイズ」にはタスクバーの高さ(場合により幅)が関係無く
自分で計算する必要があったんじゃないかと思います。
一切確認を取っていないのでハズしているかもしれません。
また、該当ウィンドウの「最大化」では仕様を満足する事は出来ないのでしょうか?
ちなみにMFC(だけ?)で、タイトルバーの無いウィンドウを「最大化」した時は
「最大化」で無く「全画面表示」になってしまう様です。
「全画面表示」の際は、まさに画面全てを使用するモードなので
タスクバーが後ろに下がる、自動的に隠れるようにしているタスクバーが出てこない
といった現象は仕様であるとも言えると思います。
勿論VCのバージョンにもよるでしょうが。
上記の話は何一つ確証の無い話なので、世間話とでもしておいてください。
以上です。