bool HandlePower(WXWPARAM wParam, WXLPARAM lParam, bool *vetoed);
- // Window procedure
+ // The main body of common window proc for all wxWindow objects. It tries
+ // to handle the given message and returns true if it was handled (the
+ // appropriate return value is then put in result, which must be non-NULL)
+ // or false if it wasn't.
+ //
+ // This function should be overridden in any new code instead of
+ // MSWWindowProc() even if currently most of the code overrides
+ // MSWWindowProc() as it had been written before this function was added.
+ virtual bool MSWHandleMessage(WXLRESULT *result,
+ WXUINT message,
+ WXWPARAM wParam,
+ WXLPARAM lParam);
+
+ // Common Window procedure for all wxWindow objects: forwards to
+ // MSWHandleMessage() and MSWDefWindowProc() if the message wasn't handled.
virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
// Calls an appropriate default window procedure
virtual void MSWDestroyWindow();
+ // Functions dealing with painting the window background. The derived
+ // classes should normally only need to reimplement MSWGetBgBrush() if they
+ // need to use a non-solid brush for erasing their background. This
+ // function is called by MSWGetBgBrushForChild() which only exists for the
+ // weird wxToolBar case and MSWGetBgBrushForChild() itself is used by
+ // MSWGetBgBrush() to actually find the right brush to use.
+
+ // The brush returned from here must remain valid at least until the next
+ // event loop iteration. Returning 0, as is done by default, indicates
+ // there is no custom background brush.
+ virtual WXHBRUSH MSWGetCustomBgBrush() { return 0; }
+
// this function should return the brush to paint the children controls
// background or 0 if this window doesn't impose any particular background
// on its children
WXWPARAM wParam,
WXLPARAM lParam = 0) const;
+ // Another helper for creating wxKeyEvent for wxEVT_CHAR and related types.
+ //
+ // The wParam and lParam here must come from WM_CHAR event parameters, i.e.
+ // wParam must be a character and not a virtual code.
+ wxKeyEvent CreateCharEvent(wxEventType evType,
+ WXWPARAM wParam,
+ WXLPARAM lParam) const;
+
// default OnEraseBackground() implementation, return true if we did erase
// the background, false otherwise (i.e. the system should erase it)