Привязка кнопок в диалоге при использовании SW_MAXIMIZE - PullRequest
0 голосов
/ 19 ноября 2009

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

У меня есть CDialog с 2 кнопками. Диалог всегда открывается в полноэкранном режиме (без строки заголовка \ статуса и т. Д.), Используя m_pMainWnd->ShowWindow(SW_MAXIMIZE);

Я хочу, чтобы мои кнопки привязывались к краю экрана.

Нет изменения размера или чего-либо еще.

1 Ответ

0 голосов
/ 19 ноября 2009

Вы знаете ширину диалога (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 );
...