aero — DwmExtendFrameIntoClientArea в переполнении стека

У меня есть следующий код C ++:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
bool fCallDWP = true;
BOOL fDwmEnabled = FALSE;
LRESULT lRet = 0;
HRESULT hr = S_OK;

MARGINS margins;

margins.cxLeftWidth = 10;      // 8
margins.cxRightWidth = 10;    // 8
margins.cyBottomHeight = 10; // 20
margins.cyTopHeight = 50;       // 27

hr = DwmExtendFrameIntoClientArea(hWnd, &margins);
return 0;
}

Но, когда я пытаюсь скомпилировать, я получаю следующую ошибку:

Но это не работает. Он не сообщает об ошибке, но просто не показывает правильный результат.

Это моя форма printscreen:

введите описание изображения здесь

0

Решение

case WM_ACTIVATE: {
DwmExtendFrameIntoClientArea(hWnd,&margins);
break;
}
case WM_ERASEBKGND: {
// I think your window's transparency key should be RGB(0,0,0)
FillRect((HDC)wParam,&WndRect,CreateSolidBrush(RGB(0,0,0)));
return TRUE;
}
0

Другие решения

Других решений пока нет …