STATBAR.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*** 
  2. *statbar.h
  3. *
  4. *  This is a part of the Microsoft Source Code Samples.
  5. *
  6. *  Copyright (C) 1992-1997 Microsoft Corporation. All rights reserved.
  7. *
  8. *  This source code is only intended as a supplement to Microsoft Development
  9. *  Tools and/or WinHelp documentation.  See these sources for detailed
  10. *  information regarding the Microsoft samples programs.
  11. *
  12. *Purpose:
  13. *
  14. *Implementation Notes:
  15. *  This file requires windows.h and ole2.h
  16. *
  17. *****************************************************************************/
  18. class CStatBar : public IUnknown {
  19. public:
  20.     static CStatBar FAR* Create(HINSTANCE hinst, HWND hwndFrame);
  21.     // IUnknown methods
  22.     //
  23.     STDMETHOD(QueryInterface)(REFIID riid, void FAR* FAR* ppv);
  24.     STDMETHOD_(unsigned long, AddRef)(void);
  25.     STDMETHOD_(unsigned long, Release)(void);
  26.     // Introduced methods
  27.     //
  28.     void Show(void);
  29.     inline void Move(void);
  30.     inline void Update(void);
  31.     inline int GetX(void);
  32.     inline void SetX(int x);
  33.     inline int GetY(void);
  34.     inline void SetY(int y);
  35.     inline int GetHeight(void);
  36.     inline void SetHeight(int height);
  37.     inline int GetWidth(void);
  38.     inline void SetWidth(int width);
  39.     //inline HFONT GetFont(void);
  40.     void SetFont(HFONT hfont);
  41.     //char FAR* GetText(void);
  42.     inline void SetText(OLECHAR FAR* sz);
  43.     void WMPaint(void);
  44.     BOOL Register(HINSTANCE);
  45. private:
  46.     CStatBar();
  47.     ~CStatBar();
  48.     unsigned long m_refs;
  49.     HWND m_hwnd; // the status bar window handle
  50.     int m_x; // x coordinate of upper left corner
  51.     int m_y; // y coordinate of upper left corner
  52.     int m_height;
  53.     int m_width;
  54.     HFONT m_hfont;
  55.     int m_dyFont; // font height
  56.     int m_dxFont; // font width
  57.     BSTR m_bstrMsg; // the status bar text
  58.     static TCHAR FAR* m_szWndClass;
  59. };
  60. inline void
  61. CStatBar::Move()
  62. {
  63.     MoveWindow(m_hwnd, m_x, m_y, m_width, m_height, TRUE);
  64. }
  65. inline void
  66. CStatBar::Update()
  67. {
  68.     InvalidateRect(m_hwnd, NULL, TRUE);
  69.     UpdateWindow(m_hwnd);
  70. }
  71. inline int
  72. CStatBar::GetX()
  73. {
  74.     return m_x;
  75. }
  76. inline void
  77. CStatBar::SetX(int x)
  78. {
  79.     m_x = x;
  80. }
  81. inline int
  82. CStatBar::GetY(void)
  83. {
  84.     return m_y;
  85. }
  86. inline void
  87. CStatBar::SetY(int y)
  88. {
  89.     m_y = y;
  90. }
  91. inline int
  92. CStatBar::GetHeight(void)
  93. {
  94.     return m_height;
  95. }
  96. inline void
  97. CStatBar::SetHeight(int height)
  98. {
  99.     m_height = height;
  100. }
  101. inline int
  102. CStatBar::GetWidth(void)
  103. {
  104.     return m_width;
  105. }
  106. inline void
  107. CStatBar::SetWidth(int width)
  108. {
  109.     m_width = width;
  110. }
  111. inline void
  112. CStatBar::SetText(OLECHAR FAR* sz)
  113. {
  114.     SysFreeString(m_bstrMsg);
  115.     m_bstrMsg = SysAllocString(sz);
  116. }
  117. extern "C" void
  118. SBprintf(CStatBar FAR* psb, TCHAR FAR* szFmt, ...);