Кнопки привязки в диалоговом окне при использовании SW_MAXIMIZE
Вопрос
Это должно быть простым:
У меня есть CDialog с 2 кнопками.Диалоговое окно всегда открывается во весь экран (без строки заголовка \ статуса и т.д.) с помощью m_pMainWnd->ShowWindow(SW_MAXIMIZE);
Я хочу, чтобы мои кнопки располагались по краю экрана.
Здесь нет изменения размера или чего-то еще.
Решение
Вы знаете ширину диалогового окна (GetClientRect).Вы знаете ширину кнопок.
Предполагая , что вы привязываетесь к правому краю ...
Внутри вашего CDialog::OnSize:
// Grab the CDialog's rect.
CRect winRect;
GetClientRect( &winRect );
// Grab the button's rect.
CRect buttonRect;
button.GetClientRect( &buttonRect );
// Now we need to set the top, left of the button to the right edge - the button width.
// The y position will remain the same.
button.SetWindowPos( NULL, winRect.right - buttonRect.Width(), buttonRect.top, 0, 0, SWP_NOZORDER | SWP_NOMOVE );
Не связан с StackOverflow