не-MFC CalcWindowRect ()? - PullRequest
       19

не-MFC CalcWindowRect ()?

1 голос
/ 29 ноября 2010

Кто-нибудь знает, есть ли не-MFC версия этого API?

CalcWindowRect ()

спасибо

Ответы [ 2 ]

3 голосов
/ 29 ноября 2010

Точной функции замены один к одному нет, но AdjustWindowRectEx довольно близко. Если для учета полос прокрутки используется флаг CWnd::adjustOutside, вам необходимо выполнить эту настройку самостоятельно.

Например:

// MFC version
RECT desiredClientRect = {0, 0, 640, 480};
myCwnd->CalcWindowRect(&desiredClientRect,
    ignoreScrollBars ? CWnd::adjustBorder : CWnd::adjustOutside);

// Win32 version
RECT desiredClientRect = {0, 0, 640, 480};
DWORD dwStyle = GetWindowLong(myHwnd, GWL_STYLE);
AdjustWindowRectEx(&desiredClientRect,
    dwStyle,
    (GetMenu(myHwnd) != NULL),           // bMenu
    GetWindowLong(myHwnd, GWL_EXSTYLE)); // dwExStyle
if(!ignoreScrollBars)
{
    if(dwStyle & WS_HSCROLL)
        desiredClientRect.right += GetSystemMetrics(SM_CXHSCROLL);
    if(dwStyle & WS_VSCROLL)
        desiredClientRect.bottom += GetSystemMetrics(SM_CXVSCROLL);
}
3 голосов
/ 29 ноября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...