if (!::WinRegisterClass( vHab
,wxCanvasClassName
,wxWndProc
- ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT
+ ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT | CS_CLIPCHILDREN
,sizeof(ULONG)
))
{
}
#endif // wxUSE_TOOLTIPS
+ //
+ // We must relay Timer events to wxTimer's processing function
+ //
+ if (pMsg->msg == WM_TIMER)
+ wxTimerProc(NULL, 0, (int)pMsg->mp1, 0);
+
//
// For some composite controls (like a combobox), wndThis might be NULL
// because the subcontrol is not a wxWindow, but only the control itself
wxApp::CleanUp();
} // end of wxExit
+static bool gs_inYield = FALSE;
+
//
// Yield to incoming messages
//
//
wxLog::Suspend();
+ gs_inYield = TRUE;
+
//
// We want to go back to the main message loop
// if we see a WM_QUIT. (?)
// Let the logs be flashed again
//
wxLog::Resume();
+ gs_inYield = FALSE;
return TRUE;
} // end of wxYield
+// Yield to incoming messages; but fail silently if recursion is detected.
+bool wxYieldIfNeeded()
+{
+ if (gs_inYield)
+ return FALSE;
+
+ return wxYield();
+}
+
wxIcon wxApp::GetStdIcon(
int nWhich
) const