-
- if (ulStyle & wxTINY_CAPTION_VERT)
- ulCreateFlags |= FCF_TASKLIST;
- if (ulStyle & wxTINY_CAPTION_HORIZ)
- ulCreateFlags |= FCF_TASKLIST;
-
- if ((ulStyle & wxTHICK_FRAME) == 0)
- ulCreateFlags |= FCF_BORDER;
- if (ulStyle & wxFRAME_TOOL_WINDOW)
- ulExtraFlags = kFrameToolWindow;
-
- if (ulStyle & wxSTAY_ON_TOP)
- ulCreateFlags |= FCF_SYSMODAL;
- }
- if ((ulStyle & wxMINIMIZE) || (ulStyle & wxICONIZE))
- ulStyleFlags |= WS_MINIMIZED;
- if (ulStyle & wxMAXIMIZE)
- ulStyleFlags |= WS_MAXIMIZED;
-
- //
- // Clear the visible flag, we always call show
- //
- ulStyleFlags &= (unsigned long)~WS_VISIBLE;
- m_bIconized = FALSE;
-
- //
- // Set the frame control block
- //
- vFrameCtlData.cb = sizeof(vFrameCtlData);
- vFrameCtlData.flCreateFlags = ulCreateFlags;
- vFrameCtlData.hmodResources = 0L;
- vFrameCtlData.idResources = 0;
-
- //
- // Create the frame window
- //
- if (!wxWindow::OS2Create( hParent
- ,WC_FRAME
- ,zTitle
- ,ulStyleFlags
- ,(long)nX
- ,(long)nY
- ,(long)nWidth
- ,(long)nHeight
- ,NULLHANDLE
- ,HWND_TOP
- ,(long)nId
- ,(void*)&vFrameCtlData
- ,NULL
- ))
- {
- return FALSE;
- }
-
- //
- // Create the client window. We must call the API from here rather than
- // the static base class create because we need a separate handle
- //
- if ((hClient = ::WinCreateWindow( hFrame // Frame is parent
- ,wxFrameClassName
- ,NULL // Window title
- ,0 // No styles
- ,0, 0, 0, 0 // Window position
- ,NULLHANDLE // Owner
- ,HWND_TOP // Sibling
- ,FID_CLIENT // standard client ID
- ,NULL // Creation data
- ,NULL // Window Pres Params
- )) == 0L)
- {
- return FALSE;
- }
- //
- // Send anything to initialize the frame
- //
- ::WinSendMsg( hFrame
- ,WM_UPDATEFRAME
- ,(MPARAM)FCF_TASKLIST
- ,(MPARAM)0
- );
-
- //
- // Now size everything. If adding a menu the client will need to be resized.
- //
- if (!::WinSetWindowPos( hFrame
- ,HWND_TOP
- ,nX
- ,nY
- ,nWidth
- ,nHeight
- ,SWP_SIZE | SWP_MOVE | SWP_ACTIVATE
- ))
- return FALSE;
-
- WinQueryWindowPos(hFrame, &vSwp);
-
- //
- // Set the client window's background, otherwise it is transparent!
- //
- wxColour vColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW);
-
- vRgb.bRed = (BYTE)vColour.Red();
- vRgb.bGreen = (BYTE)vColour.Green();
- vRgb.bBlue = (BYTE)vColour.Blue();
- WinSetPresParam( hClient
- ,PP_BACKGROUNDCOLOR
- ,(ULONG)sizeof(RGB2)
- ,(PVOID)&vRgb
- );
- if (ulCreateFlags & FCF_TITLEBAR)
- {
- hTitlebar = WinWindowFromID(hFrame, FID_TITLEBAR);
- WinQueryWindowPos(hTitlebar, &vSwpTitlebar);
- }
- if (ulCreateFlags & FCF_HORZSCROLL)
- {
- hHScroll = WinWindowFromID(hFrame, FID_HORZSCROLL);
- WinQueryWindowPos(hHScroll, &vSwpHScroll);