views:

98

answers:

1

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.

A: 

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
That did the trick. Thanks.
Eldad