}
break;
#endif
+ case WM_ERASEBACKGROUND:
+ //
+ // Returning TRUE to requestw PM to paint the window background
+ // in SYSCLR_WINDOW. We don't really want that
+ //
+ bProcessed = HandleEraseBkgnd((WXHDC)(HPS)wParam);
+ mResult = (MRESULT)(FALSE);
+ break;
+
//
// Instead of CTLCOLOR messages PM sends QUERYWINDOWPARAMS to
// things such as colors and fonts and such
bProcessed = HandlePresParamChanged(wParam);
break;
- // move this to wxFrame
- case WM_ERASEBACKGROUND:
- bProcessed = HandleEraseBkgnd((WXHDC)(HDC)wParam);
- if (bProcessed)
- {
- //
- // We processed the message, i.e. erased the background
- //
- mResult = (MRESULT)TRUE;
- }
- break;
// move all drag and drops to wxDrg
case WM_ENDDRAG:
wxLogLastError("CreateRectRgn");
return FALSE;
}
- //
- // Debug code
- //
-#ifdef __WXDEBUG__
- {
- HWND hWnd;
- HWND hWnd0 = NULLHANDLE;
-
- hWnd = GetHwnd();
- if(hWnd != hWnd0)
- printf("HandlePaint hWnd=%x ",hWnd);
- }
-#endif
m_updateRegion = wxRegion(hRgn);
vEvent.SetEventObject(this);
+ if (!GetEventHandler()->ProcessEvent(vEvent))
+ {
+ HPS hPS;
+
+ hPS = ::WinBeginPaint( GetHwnd()
+ ,NULLHANDLE
+ ,&vRect
+ );
+ if(hPS)
+ {
+ ::GpiCreateLogColorTable( hPS
+ ,0L
+ ,LCOLF_CONSECRGB
+ ,0L
+ ,(LONG)wxTheColourDatabase->m_nSize
+ ,(PLONG)wxTheColourDatabase->m_palTable
+ );
+ ::GpiCreateLogColorTable( hPS
+ ,0L
+ ,LCOLF_RGB
+ ,0L
+ ,0L
+ ,NULL
+ );
+
+ ::WinFillRect(hPS, &vRect, GetBackgroundColour().GetPixel());
+ ::WinEndPaint(hPS);
+ }
+ }
return (GetEventHandler()->ProcessEvent(vEvent));
} // end of wxWindow::HandlePaint
-bool wxWindow::HandleEraseBkgnd(WXHDC hdc)
+bool wxWindow::HandleEraseBkgnd(
+ WXHDC hDC
+)
{
- // TODO: will have to worry about this later as part of
- // the handling of changed presentation parameters
- /*
- if ( ::IsIconic(GetHwnd()) )
+ SWP vSwp;
+
+ ::WinQueryWindowPos(GetHwnd(), &vSwp);
+ if (vSwp.fl & SWP_MINIMIZE)
return TRUE;
- wxDC dc;
+ wxDC vDC;
- dc.SetHDC(hdc);
- dc.SetWindow(this);
- dc.BeginDrawing();
+ vDC.m_hPS = (HPS)hDC; // this is really a PS
+ vDC.SetWindow(this);
+ vDC.BeginDrawing();
- wxEraseEvent event(m_windowId, &dc);
- event.SetEventObject(this);
- bool rc = GetEventHandler()->ProcessEvent(event);
+ wxEraseEvent vEvent(m_windowId, &vDC);
+
+ vEvent.SetEventObject(this);
- dc.EndDrawing();
- dc.SelectOldObjects(hdc);
- dc.SetHDC((WXHDC) NULL);
- */
+ bool rc = GetEventHandler()->ProcessEvent(vEvent);
+
+ vDC.EndDrawing();
+ vDC.m_hPS = NULLHANDLE;
return TRUE;
} // end of wxWindow::HandleEraseBkgnd
wxEraseEvent& rEvent
)
{
- // TODO:
+ RECTL vRect;
+ HPS hPS = rEvent.m_dc->m_hPS;
+
+ ::WinQueryWindowRect(GetHwnd(), &vRect);
+ ::WinFillRect(hPS, &vRect, m_backgroundColour.GetPixel());
} // end of wxWindow::OnEraseBackground
// ---------------------------------------------------------------------------