|
|
1.1 root 1: /***
2: *statbar.h
3: *
4: * Copyright (C) 1992, Microsoft Corporation. All Rights Reserved.
5: * Information Contained Herein Is Proprietary and Confidential.
6: *
7: *Purpose:
8: *
9: *Implementation Notes:
10: * This file requires windows.h and ole2.h
11: *
12: *****************************************************************************/
13:
14: class CStatBar : public IUnknown {
15: public:
16: static CStatBar FAR* Create(HANDLE hinst, HWND hwndFrame);
17:
18: // IUnknown methods
19: //
20: STDMETHOD(QueryInterface)(REFIID riid, void FAR* FAR* ppv);
21: STDMETHOD_(unsigned long, AddRef)(void);
22: STDMETHOD_(unsigned long, Release)(void);
23:
24: // Introduced methods
25: //
26: void Show(void);
27: inline void Move(void);
28: inline void Update(void);
29:
30: inline int GetX(void);
31: inline void SetX(int x);
32:
33: inline int GetY(void);
34: inline void SetY(int y);
35:
36: inline int GetHeight(void);
37: inline void SetHeight(int height);
38:
39: inline int GetWidth(void);
40: inline void SetWidth(int width);
41:
42: //inline HFONT GetFont(void);
43: void SetFont(HFONT hfont);
44:
45: //char FAR* GetText(void);
46: inline void SetText(char FAR* sz);
47:
48: void WMPaint(void);
49: BOOL Register(HANDLE);
50:
51: private:
52: CStatBar();
53: ~CStatBar();
54:
55: unsigned long m_refs;
56:
57: HWND m_hwnd; // the status bar window handle
58:
59: int m_x; // x coordinate of upper left corner
60: int m_y; // y coordinate of upper left corner
61: int m_height;
62: int m_width;
63:
64: HFONT m_hfont;
65: int m_dyFont; // font height
66: int m_dxFont; // font width
67:
68: BSTR m_bstrMsg; // the status bar text
69:
70: static char FAR* m_szWndClass;
71: };
72:
73: inline void
74: CStatBar::Move()
75: {
76: MoveWindow(m_hwnd, m_x, m_y, m_width, m_height, TRUE);
77: }
78:
79: inline void
80: CStatBar::Update()
81: {
82: InvalidateRect(m_hwnd, NULL, TRUE);
83: UpdateWindow(m_hwnd);
84: }
85:
86: inline int
87: CStatBar::GetX()
88: {
89: return m_x;
90: }
91:
92: inline void
93: CStatBar::SetX(int x)
94: {
95: m_x = x;
96: }
97:
98: inline int
99: CStatBar::GetY(void)
100: {
101: return m_y;
102: }
103:
104: inline void
105: CStatBar::SetY(int y)
106: {
107: m_y = y;
108: }
109:
110: inline int
111: CStatBar::GetHeight(void)
112: {
113: return m_height;
114: }
115:
116: inline void
117: CStatBar::SetHeight(int height)
118: {
119: m_height = height;
120: }
121:
122: inline int
123: CStatBar::GetWidth(void)
124: {
125: return m_width;
126: }
127:
128: inline void
129: CStatBar::SetWidth(int width)
130: {
131: m_width = width;
132: }
133:
134: inline void
135: CStatBar::SetText(char FAR* sz)
136: {
137: SysFreeString(m_bstrMsg);
138: m_bstrMsg = SysAllocString(sz);
139: }
140:
141: extern "C" void
142: SBprintf(CStatBar FAR* psb, char FAR* szFmt, ...);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.