X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d6dae1b4432a3ecbf3ca8b983440728a46af8f20..4209475ced5240eb3ce516767e7c9a0a74d12bc7:/src/msw/filedlg.cpp diff --git a/src/msw/filedlg.cpp b/src/msw/filedlg.cpp index ae89ed5c05..c553328fb4 100644 --- a/src/msw/filedlg.cpp +++ b/src/msw/filedlg.cpp @@ -459,12 +459,11 @@ int wxFileDialog::ShowModal() lpdt->x = 0; lpdt->y = 0; - wxSize extra_size = GetExtraControlSize(); - // setting cx doesn't change the width of the dialog - lpdt->cx = extra_size.GetWidth(); - // Dividing by 2 gives expected height on WinXP and Wine. - // I don't know why (MW). - lpdt->cy = extra_size.GetHeight() / 2; + // convert the size of the extra controls to the dialog units + const wxSize extraSize = GetExtraControlSize(); + const LONG baseUnits = ::GetDialogBaseUnits(); + lpdt->cx = ::MulDiv(extraSize.x, 4, LOWORD(baseUnits)); + lpdt->cy = ::MulDiv(extraSize.y, 8, HIWORD(baseUnits)); // after the DLGTEMPLATE there are 3 additional WORDs for dialog menu, // class and title, all three set to zeros.