- wxWindow *FindItem(int id) const;
- wxWindow *FindItemByHWND(WXHWND hWnd, bool controlOnly = FALSE) const;
-
- // Make a Windows extended style from the given wxWindows window style
- virtual WXDWORD MakeExtendedStyle(long style, bool eliminateBorders = TRUE);
- // Determine whether 3D effects are wanted
- virtual WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D);
-
- // MSW only: TRUE if this control is part of the main control
- virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; };
-
- // returns TRUE if the window has been created
- bool MSWCreate(int id,
- wxWindow *parent,
- const char *wclass,
- wxWindow *wx_win,
- const char *title,
- int x, int y, int width, int height,
- WXDWORD style,
- const char *dialog_template = NULL,
+ // return true if the window is of a standard (i.e. not wxWidgets') class
+ //
+ // to understand why does it work, look at SubclassWin() code and comments
+ bool IsOfStandardClass() const { return m_oldWndProc != NULL; }
+
+ wxWindow *FindItem(long id) const;
+ wxWindow *FindItemByHWND(WXHWND hWnd, bool controlOnly = false) const;
+
+ // MSW only: true if this control is part of the main control
+ virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return false; }
+
+#if wxUSE_TOOLTIPS
+ // MSW only: true if this window or any of its children have a tooltip
+ virtual bool HasToolTips() const { return GetToolTip() != NULL; }
+#endif // wxUSE_TOOLTIPS
+
+ // translate wxWidgets style flags for this control into the Windows style
+ // and optional extended style for the corresponding native control
+ //
+ // this is the function that should be overridden in the derived classes,
+ // but you will mostly use MSWGetCreateWindowFlags() below
+ virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const ;
+
+ // get the MSW window flags corresponding to wxWidgets ones
+ //
+ // the functions returns the flags (WS_XXX) directly and puts the ext
+ // (WS_EX_XXX) flags into the provided pointer if not NULL
+ WXDWORD MSWGetCreateWindowFlags(WXDWORD *exflags = NULL) const
+ { return MSWGetStyle(GetWindowStyle(), exflags); }
+
+ // update the real underlying window style flags to correspond to the
+ // current wxWindow object style (safe to call even if window isn't fully
+ // created yet)
+ void MSWUpdateStyle(long flagsOld, long exflagsOld);
+
+ // translate wxWidgets coords into Windows ones suitable to be passed to
+ // ::CreateWindow()
+ //
+ // returns true if non default coords are returned, false otherwise
+ bool MSWGetCreateWindowCoords(const wxPoint& pos,
+ const wxSize& size,
+ int& x, int& y,
+ int& w, int& h) const;
+
+ // get the HWND to be used as parent of this window with CreateWindow()
+ virtual WXHWND MSWGetParent() const;
+
+ // creates the window of specified Windows class with given style, extended
+ // style, title and geometry (default values
+ //
+ // returns true if the window has been created, false if creation failed
+ bool MSWCreate(const wxChar *wclass,
+ const wxChar *title = NULL,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ WXDWORD style = 0,