0

2 つのダイアログに表示したいボタンのベクトルがあります。いくつかは現在のウィンドウにあり、もう 1 つは現在のウィンドウの親にあります。そして、それらを一番上に表示したい。

したがって、現在のウィンドウでは問題なく動作します。親ウィンドウの場合、親を設定しました。ボタンは正しく配置されていますが、別のボタンの後ろに表示されています。

私はすでに SWP_NOZORDER を設定しています:

std::vector<CGdipButtonEx*> m_trashIcons;
...
m_trashButtons[i]->SetWindowPos(nullptr,x,y,25,25,SWP_NOZORDER );
4

2 に答える 2

0

ボタンを他のボタンの上に表示するように設定するにHWND_TOPは、最初のパラメーターとして渡す必要がありますhwndInsertAfter

m_trashButtons[i]->SetWindowPos(HWND_TOP,x,y,25,25,SWP_SHOWWINDOW);

パスしないでくださいSWP_NOZORDER。Z オーダーは、ウィンドウが互いに重なり合う順序です (z 軸)。それはあなたが設定したいことなので、「Zオーダーはありません」と言うのは、正確かつ正確に間違ったことです。

ドキュメントに従って:

SWP_NOZORDER 0x0004 現在の Z オーダーを保持します (hWndInsertAfter パラメータを無視します)。

于 2012-07-17T21:32:31.137 に答える
0

ウィンドウは階層化されています。両方にコントロールがある 2 つのダイアログがある場合、下のダイアログのコントロールが最上位にマークされ、上のダイアログのコントロールが最上位にマークされていない場合でも、上のダイアログのすべてのコントロールが下のダイアログのコントロールの上に表示されます。 t。

于 2012-07-17T22:38:41.373 に答える