⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 window.h

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 H
📖 第 1 页 / 共 2 页
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        wx/msw/window.h// Purpose:     wxWindowMSW class// Author:      Julian Smart// Modified by: Vadim Zeitlin on 13.05.99: complete refont of message handling,//              elimination of Default(), ...// Created:     01/02/97// RCS-ID:      $Id: window.h,v 1.170 2006/10/09 16:39:10 VZ Exp $// Copyright:   (c) Julian Smart// Licence:     wxWindows licence/////////////////////////////////////////////////////////////////////////////#ifndef _WX_WINDOW_H_#define _WX_WINDOW_H_// ---------------------------------------------------------------------------// constants// ---------------------------------------------------------------------------#if WXWIN_COMPATIBILITY_2_4// they're unused by wxWidgets...enum{    wxKEY_SHIFT = 1,    wxKEY_CTRL  = 2};#endif// ---------------------------------------------------------------------------// wxWindow declaration for MSW// ---------------------------------------------------------------------------class WXDLLEXPORT wxWindowMSW : public wxWindowBase{    friend class wxSpinCtrl;    friend class wxSlider;    friend class wxRadioBox;#if defined __VISUALC__ && __VISUALC__ <= 1200    friend class wxWindowMSW;#endifpublic:    wxWindowMSW() { Init(); }    wxWindowMSW(wxWindow *parent,                wxWindowID id,                const wxPoint& pos = wxDefaultPosition,                const wxSize& size = wxDefaultSize,                long style = 0,                const wxString& name = wxPanelNameStr)    {        Init();        Create(parent, id, pos, size, style, name);    }    virtual ~wxWindowMSW();    bool Create(wxWindow *parent,                wxWindowID id,                const wxPoint& pos = wxDefaultPosition,                const wxSize& size = wxDefaultSize,                long style = 0,                const wxString& name = wxPanelNameStr);    // implement base class pure virtuals    virtual void SetLabel(const wxString& label);    virtual wxString GetLabel() const;    virtual void Raise();    virtual void Lower();    virtual bool Show( bool show = true );    virtual bool Enable( bool enable = true );    virtual void SetFocus();    virtual void SetFocusFromKbd();    virtual bool Reparent(wxWindowBase *newParent);    virtual void WarpPointer(int x, int y);    virtual void Refresh( bool eraseBackground = true,                          const wxRect *rect = (const wxRect *) NULL );    virtual void Update();    virtual void Freeze();    virtual void Thaw();    virtual bool IsFrozen() const { return m_frozenness > 0; }    virtual void SetWindowStyleFlag(long style);    virtual void SetExtraStyle(long exStyle);    virtual bool SetCursor( const wxCursor &cursor );    virtual bool SetFont( const wxFont &font );    virtual int GetCharHeight() const;    virtual int GetCharWidth() const;    virtual void GetTextExtent(const wxString& string,                               int *x, int *y,                               int *descent = (int *) NULL,                               int *externalLeading = (int *) NULL,                               const wxFont *theFont = (const wxFont *) NULL)                               const;    virtual void SetScrollbar( int orient, int pos, int thumbVisible,                               int range, bool refresh = true );    virtual void SetScrollPos( int orient, int pos, bool refresh = true );    virtual int GetScrollPos( int orient ) const;    virtual int GetScrollThumb( int orient ) const;    virtual int GetScrollRange( int orient ) const;    virtual void ScrollWindow( int dx, int dy,                               const wxRect* rect = (wxRect *) NULL );    virtual bool ScrollLines(int lines);    virtual bool ScrollPages(int pages);    virtual void SetLayoutDirection(wxLayoutDirection dir);    virtual wxLayoutDirection GetLayoutDirection() const;    virtual wxCoord AdjustForLayoutDirection(wxCoord x,                                             wxCoord width,                                             wxCoord widthTotal) const;#if wxUSE_DRAG_AND_DROP    virtual void SetDropTarget( wxDropTarget *dropTarget );#endif // wxUSE_DRAG_AND_DROP    // Accept files for dragging    virtual void DragAcceptFiles(bool accept);#if WXWIN_COMPATIBILITY_2_4    wxDEPRECATED( bool GetUseCtl3D() const );    wxDEPRECATED( bool GetTransparentBackground() const );    wxDEPRECATED( void SetTransparent(bool t = true) );#endif // WXWIN_COMPATIBILITY_2_4#ifndef __WXUNIVERSAL__    // Native resource loading (implemented in src/msw/nativdlg.cpp)    // FIXME: should they really be all virtual?    virtual bool LoadNativeDialog(wxWindow* parent, wxWindowID& id);    virtual bool LoadNativeDialog(wxWindow* parent, const wxString& name);    wxWindow* GetWindowChild1(wxWindowID id);    wxWindow* GetWindowChild(wxWindowID id);#endif // __WXUNIVERSAL__#if wxUSE_HOTKEY    // install and deinstall a system wide hotkey    virtual bool RegisterHotKey(int hotkeyId, int modifiers, int keycode);    virtual bool UnregisterHotKey(int hotkeyId);#endif // wxUSE_HOTKEY#ifdef __POCKETPC__    bool IsContextMenuEnabled() const { return m_contextMenuEnabled; }    void EnableContextMenu(bool enable = true) { m_contextMenuEnabled = enable; }#endif    // window handle stuff    // -------------------    WXHWND GetHWND() const { return m_hWnd; }    void SetHWND(WXHWND hWnd) { m_hWnd = hWnd; }    virtual WXWidget GetHandle() const { return GetHWND(); }    void AssociateHandle(WXWidget handle);    void DissociateHandle();    // does this window have deferred position and/or size?    bool IsSizeDeferred() const;    // implementation from now on    // ==========================    // event handlers    // --------------    void OnPaint(wxPaintEvent& event);    void OnEraseBackground(wxEraseEvent& event);#ifdef __WXWINCE__    void OnInitDialog(wxInitDialogEvent& event);#endifpublic:    // Windows subclassing    void SubclassWin(WXHWND hWnd);    void UnsubclassWin();    WXFARPROC MSWGetOldWndProc() const { return m_oldWndProc; }    void MSWSetOldWndProc(WXFARPROC proc) { m_oldWndProc = proc; }    // 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,                   WXDWORD exendedStyle = 0);    virtual bool MSWCommand(WXUINT param, WXWORD id);#ifndef __WXUNIVERSAL__    // Create an appropriate wxWindow from a HWND    virtual wxWindow* CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd);    // Make sure the window style reflects the HWND style (roughly)    virtual void AdoptAttributesFromHWND();#endif // __WXUNIVERSAL__    // Setup background and foreground colours correctly    virtual void SetupColours();    // ------------------------------------------------------------------------    // 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 *id, WXHWND *hwnd, WXWORD *cmd);    void UnpackActivate(WXWPARAM wParam, WXLPARAM lParam,                        WXWORD *state, WXWORD *minimized, WXHWND *hwnd);    void UnpackScroll(WXWPARAM wParam, WXLPARAM lParam,                      WXWORD *code, WXWORD *pos, WXHWND *hwnd);    void UnpackCtlColor(WXWPARAM wParam, WXLPARAM lParam,                        WXHDC *hdc, WXHWND *hwnd);    void UnpackMenuSelect(WXWPARAM wParam, WXLPARAM lParam,                          WXWORD *item, WXWORD *flags, WXHMENU *hmenu);    // ------------------------------------------------------------------------    // internal handlers for MSW messages: all handlers return a boolean value:    // true means that the handler processed the event and false that it didn't    // ------------------------------------------------------------------------    // there are several cases where we have virtual functions for Windows    // message processing: this is because these messages often require to be    // processed in a different manner in the derived classes. For all other    // messages, however, we do *not* have corresponding MSWOnXXX() function    // and if the derived class wants to process them, it should override    // MSWWindowProc() directly.    // scroll event (both horizontal and vertical)    virtual bool MSWOnScroll(int orientation, WXWORD nSBCode,                             WXWORD pos, WXHWND control);    // child control notifications    virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);    // owner-drawn controls need to process these messages    virtual bool MSWOnDrawItem(int id, WXDRAWITEMSTRUCT *item);    virtual bool MSWOnMeasureItem(int id, WXMEASUREITEMSTRUCT *item);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -