Центрировать диалог относительно CView - PullRequest
0 голосов
/ 25 июня 2019

Я хочу центрировать CMyDialog относительно CView.

Я делаю это внутри CMyDialog::OnInitDialog() с CenterWindow(m_pParentWnd); Но это не работает, как ожидалось, неправильная позиция.(слишком много, слишком много, верно)

Я должен исправить оригинал CenterWindow(CWnd* pAlternateOwner) немного следующим образом:

///////////////////////////////////////////////////////////////////////
// Centering dialog support (works for any non-child window)

//void CWnd::CenterWindow(CWnd* pAlternateOwner)
void CMyDlg::CenterWindow(CWnd* pAlternateOwner)
{
  ..
  ..
  // find dialog's upper left based on rcCenter
  //int xLeft = (rcCenter.left + rcCenter.right) / 2 - rcDlg.Width() / 2;  // wrong
  //int yTop = (rcCenter.top + rcCenter.bottom) / 2 - rcDlg.Height() / 2;   // wrong 

  int   xLeft = (rcCenter.right - rcCenter.left) / 2 - rcDlg.Width() / 2;   // right
  int   yTop = (rcCenter.bottom - rcCenter.top) / 2 - rcDlg.Height() / 2;   // right 
  ..
  ..
}

Неправильно ли выполнен расчет MFC или есть какие-то предпосылки, что япропустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...