📄 window.h
字号:
/////////////////////////////////////////////////////////////////////////////// Name: wx/os2/window.h// Purpose: wxWindow class// Author: David Webster// Modified by:// Created: 10/12/99// RCS-ID: $Id: window.h,v 1.58 2006/08/24 15:37:25 ABX Exp $// Copyright: (c) David Webster// Licence: wxWindows licence/////////////////////////////////////////////////////////////////////////////#ifndef _WX_WINDOW_H_#define _WX_WINDOW_H_#define wxUSE_MOUSEEVENT_HACK 0// ---------------------------------------------------------------------------// headers// ---------------------------------------------------------------------------#define INCL_DOS#define INCL_PM#define INCL_GPI#include <os2.h>// ---------------------------------------------------------------------------// forward declarations// ---------------------------------------------------------------------------#ifndef CW_USEDEFAULT# define CW_USEDEFAULT ((int)0x80000000)#endif// ---------------------------------------------------------------------------// forward declarations// ---------------------------------------------------------------------------class WXDLLEXPORT wxButton;// ---------------------------------------------------------------------------// constants// ---------------------------------------------------------------------------#if WXWIN_COMPATIBILITY_2_4// they're unused by wxWidgets...enum{ wxKEY_SHIFT = 1, wxKEY_CTRL = 2};#endif// ---------------------------------------------------------------------------// wxWindow declaration for OS/2 PM// ---------------------------------------------------------------------------class WXDLLEXPORT wxWindowOS2 : public wxWindowBase{public: wxWindowOS2() { Init(); } wxWindowOS2( wxWindow* pParent ,wxWindowID vId ,const wxPoint& rPos = wxDefaultPosition ,const wxSize& rSize = wxDefaultSize ,long lStyle = 0 ,const wxString& rName = wxPanelNameStr ) { Init(); Create( pParent ,vId ,rPos ,rSize ,lStyle ,rName ); } virtual ~wxWindowOS2(); bool Create( wxWindow* pParent ,wxWindowID vId ,const wxPoint& rPos = wxDefaultPosition ,const wxSize& rSize = wxDefaultSize ,long lStyle = 0 ,const wxString& rName = wxPanelNameStr ); // implement base class pure virtuals virtual void SetLabel(const wxString& label); virtual wxString GetLabel(void) const; virtual void Raise(void); virtual void Lower(void); virtual bool Show(bool bShow = true); virtual bool Enable(bool bEnable = true); virtual void SetFocus(void); virtual void SetFocusFromKbd(void); virtual bool Reparent(wxWindow* pNewParent); virtual void WarpPointer( int x ,int y ); virtual void Refresh( bool bEraseBackground = true ,const wxRect* pRect = (const wxRect *)NULL ); virtual void Freeze(void); virtual void Update(void); virtual void Thaw(void); virtual void SetWindowStyleFlag(long lStyle); virtual bool SetCursor(const wxCursor& rCursor); virtual bool SetFont(const wxFont& rFont); virtual int GetCharHeight(void) const; virtual int GetCharWidth(void) const; virtual void GetTextExtent( const wxString& rString ,int* pX ,int* pY ,int* pDescent = (int *)NULL ,int* pExternalLeading = (int *)NULL ,const wxFont* pTheFont = (const wxFont *)NULL ) const;#if wxUSE_MENUS_NATIVE virtual bool DoPopupMenu( wxMenu* pMenu ,int nX ,int nY );#endif // wxUSE_MENUS_NATIVE virtual void SetScrollbar( int nOrient ,int nPos ,int nThumbVisible ,int nRange ,bool bRefresh = true ); virtual void SetScrollPos( int nOrient ,int nPos ,bool bRefresh = true ); virtual int GetScrollPos(int nOrient) const; virtual int GetScrollThumb(int nOrient) const; virtual int GetScrollRange(int nOrient) const; virtual void ScrollWindow( int nDx ,int nDy ,const wxRect* pRect = (wxRect *)NULL ); inline HWND GetScrollBarHorz(void) const {return m_hWndScrollBarHorz;} inline HWND GetScrollBarVert(void) const {return m_hWndScrollBarVert;};#if wxUSE_DRAG_AND_DROP virtual void SetDropTarget(wxDropTarget* pDropTarget);#endif // wxUSE_DRAG_AND_DROP // Accept files for dragging virtual void DragAcceptFiles(bool bAccept);#ifndef __WXUNIVERSAL__ // Native resource loading (implemented in src/os2/nativdlg.cpp) // FIXME: should they really be all virtual? virtual bool LoadNativeDialog( wxWindow* pParent ,wxWindowID& vId ); virtual bool LoadNativeDialog( wxWindow* pParent ,const wxString& rName ); wxWindow* GetWindowChild1(wxWindowID vId); wxWindow* GetWindowChild(wxWindowID vId);#endif //__WXUNIVERSAL__ // implementation from now on // -------------------------- // simple accessors // ---------------- WXHWND GetHWND(void) const { return m_hWnd; } void SetHWND(WXHWND hWnd) { m_hWnd = hWnd; } virtual WXWidget GetHandle(void) const { return GetHWND(); } bool GetUseCtl3D(void) const { return m_bUseCtl3D; } bool GetTransparentBackground(void) const { return m_bBackgroundTransparent; } void SetTransparentBackground(bool bT = true) { m_bBackgroundTransparent = bT; } // event handlers // -------------- void OnSetFocus(wxFocusEvent& rEvent); void OnEraseBackground(wxEraseEvent& rEvent); void OnIdle(wxIdleEvent& rEvent);public: // Windows subclassing void SubclassWin(WXHWND hWnd); void UnsubclassWin(void); WXFARPROC OS2GetOldWndProc(void) const { return m_fnOldWndProc; } void OS2SetOldWndProc(WXFARPROC fnProc) { m_fnOldWndProc = fnProc; } // // Return true if the window is of a standard (i.e. not wxWidgets') class // bool IsOfStandardClass(void) const { return m_fnOldWndProc != NULL; } wxWindow* FindItem(long lId) const; wxWindow* FindItemByHWND( WXHWND hWnd ,bool bControlOnly = false ) const; // Make a Windows extended style from the given wxWidgets window style ?? applicable to OS/2?? static WXDWORD MakeExtendedStyle( long lStyle ,bool bEliminateBorders = true ); // PM only: true if this control is part of the main control virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return false; }; // translate wxWidgets style flags for this control into the PM 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 OS2GetCreateWindowFlags() below virtual WXDWORD OS2GetStyle( long lFlags ,WXDWORD* pdwExstyle = 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 OS2GetCreateWindowFlags(WXDWORD* pdwExflags = NULL) const { return OS2GetStyle(GetWindowStyle(), pdwExflags); } // get the HWND to be used as parent of this window with CreateWindow() virtual WXHWND OS2GetParent(void) const; // returns true if the window has been created bool OS2Create( PSZ zClass ,const wxChar* zTitle ,WXDWORD dwStyle ,const wxPoint& rPos ,const wxSize& rSize ,void* pCtlData ,WXDWORD dwExStyle ,bool bIsChild ); virtual bool OS2Command( WXUINT uParam ,WXWORD nId );#ifndef __WXUNIVERSAL__ // Create an appropriate wxWindow from a HWND virtual wxWindow* CreateWindowFromHWND( wxWindow* pParent ,WXHWND hWnd ); // Make sure the window style reflects the HWND style (roughly) virtual void AdoptAttributesFromHWND(void);#endif // Setup background and foreground colours correctly virtual void SetupColours(void); // ------------------------------------------------------------------------ // helpers for message handlers: these perform the same function as the // message crackers from <windowsx.h> - they unpack WPARAM and LPARAM into // the correct parameters // ------------------------------------------------------------------------ void UnpackCommand( WXWPARAM wParam ,WXLPARAM lParam, WXWORD* pId ,WXHWND* pHwnd ,WXWORD* pCmd ); void UnpackActivate( WXWPARAM wParam ,WXLPARAM lParam ,WXWORD* pState ,WXHWND* pHwnd ); void UnpackScroll( WXWPARAM wParam ,WXLPARAM lParam ,WXWORD* pCode ,WXWORD* pPos ,WXHWND* pHwnd ); void UnpackMenuSelect( WXWPARAM wParam ,WXLPARAM lParam ,WXWORD* pTtem ,WXWORD* pFlags ,WXHMENU* pHmenu ); // ------------------------------------------------------------------------ // internal handlers for OS2 messages: all handlers return a boolen value: // true means that the handler processed the event and false that it didn't // ------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -