C++ Windows アプリケーション (ATL lib を使用) でダイアログ ボックスを作成し、それに 3 つのボタンを設定しました。ボタンは通常どおり、ダイアログ ボックスの下部にあります。ダイアログボックスのサイズを変更して、ボタンの位置をその下部に保持したい。言い換えると、ダイアログ ボックスの下マージンと側 (右または左) から一定の (低い) 距離を保つ必要があります。これを実現するために、ダイアログ ボックスのサイズを変更しながら、それに応じてボタンを移動しようとしました。次のコードを使用します (例として [OK] ボタンのみ) が、サイズ変更中にボタンが消えるだけです。ボタンがダイアログ ボックスの下部と右側からの距離を維持するには、コードをどのように変更すればよいですか?
LRESULT RenameFolderDlg::OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
RECT r;
GetWindowRect(&r);
CWindow okB(GetDlgItem(IDOK));
RECT okR;
okB.GetWindowRect(&okR);
okB.MoveWindow( r.right - 80 , r.bottom - 40, okR.right - okR.left, okR.bottom - okR.top, 1);
return 0;
}