[4005]
Re:Z オーダーの問題対策?
ryoji
> 1.結合表示解除時の問題
CTabWnd.cpp(860) [CTabWnd::TabWnd_ActivateFrameWindow関数]
::ShowWindow( hwnd, SW_SHOWNA );
の非表示->表示切替で何故か Z オーダーが変化してしまっているみたい。
::SetWindowPos( m_hwndParent, NULL,0,0,0,0,
SWP_SHOWWINDOW | SWP_NOACTIVATE
| SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER );
のようにすると Z オーダー変化無しで切り替えることができるっぽい。
> 2.重ねて表示・並べて表示時の問題
何だか SetWindowPos による Z オーダー操作がうまくいっていないような感じです。
重ね表示については、
CEditView_Command.cpp(7000 - 7026) [CEditView::Command_CASCADE関数]
あたり。
レスポンスは落ちるけれど単純に、
for( i = 0; i < count; i++ )
{
::ShowWindow( pWndArr[i].hWnd, SW_SHOWNOACTIVATE );
::MoveWindow(
pWndArr[i].hWnd,
pWndArr[i].newX, pWndArr[i].newY,
width, height, TRUE);
::SetForegroundWindow( pWndArr[i].hWnd );
}
のようにしたほうがうまくいく模様。
いろいろ試してみて(DeferWindowPos を使ってみるとか)、結局このあたりの策しか今のところ私には見当たりませんでした。(^^;