Кнопки привязки в диалоговом окне при использовании SW_MAXIMIZE

StackOverflow https://stackoverflow.com/questions/1762206

  •  21-09-2019
  •  | 
  •  

Вопрос

Это должно быть простым:

У меня есть 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 );
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top