// purpose or non-infringement. Please see the License for the specific terms
// and conditions governing the rights and limitations under the License.
-// Updated by DPF Fri Mar 21 18:40:58 1997
-// Added casting in void to compile
-// on AO1 int 32 bits -> pointer 64 bits ????
-// Robert Boehne 30 May 2000 : Dec Osf
-
// include windows.h first to have all definitions available
#ifdef WNT
#include <windows.h>
// include decorations in the window dimensions
// to reproduce same behaviour of Xlib window.
- theXLeft -= GetSystemMetrics(SM_CXSIZEFRAME);
- theYTop -= GetSystemMetrics(SM_CYSIZEFRAME) + GetSystemMetrics(SM_CYCAPTION);
- theWidth += 2 * GetSystemMetrics(SM_CXSIZEFRAME);
- theHeight += 2 * GetSystemMetrics(SM_CYSIZEFRAME) + GetSystemMetrics(SM_CYCAPTION);
+ DWORD aWinStyle = GetWindowLongPtr (win, GWL_STYLE);
+ DWORD aWinStyleEx = GetWindowLongPtr (win, GWL_EXSTYLE);
+ HMENU aMenu = GetMenu (win);
- SetPosition (theXLeft, theYTop);
- SetDimension (theWidth, theHeight);
+ RECT aRect;
+ aRect.top = theYTop;
+ aRect.bottom = theYTop + theHeight;
+ aRect.left = theXLeft;
+ aRect.right = theXLeft + theWidth;
+ AdjustWindowRectEx (&aRect, aWinStyle, aMenu != NULL ? TRUE : FALSE, aWinStyleEx);
+
+ SetPosition (aRect.left, aRect.top);
+ SetDimension (aRect.right - aRect.left, aRect.bottom - aRect.top);
// Save the pointer at the instance associated to the window
SetWindowLong(win, CLIENTWND, (LONG)this);
HDC hDC = GetDC(win);
dwStyle |= WS_CLIPCHILDREN;
}
- if (dwStyle & WS_OVERLAPPEDWINDOW)
- {
- // include decorations in the window dimensions
- // to reproduce same behaviour of Xw_Window.
- aXLeft -= GetSystemMetrics(SM_CXSIZEFRAME);
- aYTop -= GetSystemMetrics(SM_CYSIZEFRAME) + GetSystemMetrics(SM_CYCAPTION);
- aXRight += GetSystemMetrics(SM_CXSIZEFRAME);
- aYBottom += GetSystemMetrics(SM_CYSIZEFRAME);
- }
+ // include decorations in the window dimensions
+ // to reproduce same behaviour of Xw_Window.
+ RECT aRect;
+ aRect.top = aYTop;
+ aRect.bottom = aYBottom;
+ aRect.left = aXLeft;
+ aRect.right = aXRight;
+ AdjustWindowRect (&aRect, dwStyle, theMenu != NULL ? TRUE : FALSE);
+ aXLeft = aRect.left;
+ aYTop = aRect.top;
+ aXRight = aRect.right;
+ aYBottom = aRect.bottom;
myHWindow = CreateWindow (
myWClass->Name(), // window's class name
dwStyle |= WS_CLIPCHILDREN;
}
- if (dwStyle & WS_OVERLAPPEDWINDOW)
- {
- // include decorations in the window dimensions
- // to reproduce same behaviour of Xw_Window.
- aXLeft -= GetSystemMetrics(SM_CXSIZEFRAME);
- aYTop -= GetSystemMetrics(SM_CYSIZEFRAME) + GetSystemMetrics(SM_CYCAPTION);
- aXRight += GetSystemMetrics(SM_CXSIZEFRAME);
- aYBottom += GetSystemMetrics(SM_CYSIZEFRAME);
- }
+ // include decorations in the window dimensions
+ // to reproduce same behaviour of Xw_Window.
+ RECT aRect;
+ aRect.top = aYTop;
+ aRect.bottom = aYBottom;
+ aRect.left = aXLeft;
+ aRect.right = aXRight;
+ AdjustWindowRect (&aRect, dwStyle, theMenu != NULL ? TRUE : FALSE);
+ aXLeft = aRect.left;
+ aYTop = aRect.top;
+ aXRight = aRect.right;
+ aYBottom = aRect.bottom;
myHWindow = CreateWindow (
myWClass->Name(), // window's class name