0

This should be a simple one:

I have a CDialog with 2 buttons. The dialog is always opened in full screen (No title bar \ Status, etc...) using m_pMainWnd->ShowWindow(SW_MAXIMIZE);

I want my buttons to snap to the edge of the screen.

There are no resizing or anything.

Eldad
  • 1,067
  • 16
  • 36

1 Answers1

0

You know the width of the dialog (GetClientRect). You know the width of the buttons.

Assuming you are snapping to the right edge ...

Inside your 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 );
Goz
  • 61,365
  • 24
  • 124
  • 204