TNB Library
TnbMfcDialogBarEx.h
[詳解]
1#pragma once
11#include "TnbMfcCommon.h"
12
13
14
15//TNB Library
16namespace TNB {
17namespace MFC {
18
19
20
39class CDialogBarEx : public CDialogBar
40{
41 DEFSUPER(CDialogBar);
42public:
43
46 {
47 }
48
50 virtual ~CDialogBarEx()
51 {
52 }
53
63 BOOL Create(CWnd * pParentWnd, LPCTSTR lpszTemplateName, UINT nStyle, UINT nID)
64 {
65 if ( ! _super::Create(pParentWnd, lpszTemplateName, nStyle, nID) )
66 {
67 return FALSE;
68 }
69 m_bChangeDockedSize = false;
70 m_sizeFloating = m_sizeDocked = m_sizeDefault;
71 return OnInitDialogBar();
72 }
73
83 BOOL Create(CWnd * pParentWnd, UINT nIDTemplate, UINT nStyle, UINT nID)
84 {
85 return Create(pParentWnd, MAKEINTRESOURCE(nIDTemplate), nStyle, nID);
86 }
87
92 void SetDockedSizeMode(bool isResized)
93 {
94 m_bChangeDockedSize = isResized;
95 }
96
97protected:
98
107 virtual BOOL OnInitDialogBar(void)
108 {
109 UpdateData(FALSE);
110 return TRUE;
111 }
112
120 CSize CalcDynamicLayout(int nLength, DWORD nMode)
121 {
122 if ( (nMode & LM_VERTDOCK) != 0 || (nMode & LM_HORZDOCK) != 0 )
123 {
124 if ( (nMode & LM_STRETCH) != 0 )
125 {
126 return CSize((nMode & LM_HORZ) ? 32767 : m_sizeDocked.cx,
127 (nMode & LM_HORZ) ? m_sizeDocked.cy : 32767);
128 }
129 else
130 {
131 return m_sizeDocked;
132 }
133 }
134 if ( (nMode & LM_MRUWIDTH) != 0 )
135 {
136 return m_sizeFloating;
137 }
138 if ( (nMode & LM_LENGTHY) != 0 )
139 {
140 return CSize(m_sizeFloating.cx, (m_bChangeDockedSize) ?
141 m_sizeFloating.cy = m_sizeDocked.cy = nLength :
142 m_sizeFloating.cy = nLength);
143 }
144 return CSize((m_bChangeDockedSize) ?
145 m_sizeFloating.cx = m_sizeDocked.cx = nLength :
146 m_sizeFloating.cx = nLength, m_sizeFloating.cy);
147 }
148
159 CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz)
160 {
161 return _super::CalcFixedLayout(bStretch, bHorz);
162 }
163
171 void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler)
172 {
173 CDialogBar::OnUpdateCmdUI(pTarget, false);
174 }
175
176 #ifndef _TnbDOXYGEN //Document作成用シンボル
177
178 //{{AFX_VIRTUAL(CTrickDialogBar)
179 virtual void DoDataExchange(CDataExchange* pDX);
180 //}}AFX_VIRTUAL
181
182 //{{AFX_MSG(CTrickDialogBar)
183 //}}AFX_MSG
184
185 DECLARE_MESSAGE_MAP()
186
187 #endif // _TnbDOXYGEN
188
193};
194
195
196
197#ifndef _TnbDOXYGEN //Document作成用シンボル
198
199inline void CDialogBarEx::DoDataExchange(CDataExchange* pDX)
200{
201 ASSERT(pDX);
202 _super::DoDataExchange(pDX);
203}
204
205#ifdef __MSVCPP6__
206
207inline const AFX_MSGMAP* PASCAL CDialogBarEx::_GetBaseMessageMap()
208{
209 return &CDialogBar::messageMap;
210}
211
212inline const AFX_MSGMAP* CDialogBarEx::GetMessageMap() const
213{
214 return &CDialogBarEx::messageMap;
215}
216
217_declspec(selectany) AFX_COMDAT AFX_DATADEF const AFX_MSGMAP CDialogBarEx::messageMap =
218{
219 &CDialogBarEx::_GetBaseMessageMap, &CDialogBarEx::_messageEntries[0]
220};
221
222_declspec(selectany) AFX_COMDAT const AFX_MSGMAP_ENTRY CDialogBarEx::_messageEntries[] =
223{
224 {0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 }
225};
226
227#else // __MSVCPP6__
228
229 inline const AFX_MSGMAP* CDialogBarEx::GetMessageMap() const
230 { return GetThisMessageMap(); }
231 inline const AFX_MSGMAP* PASCAL CDialogBarEx::GetThisMessageMap()
232 {
233 static const AFX_MSGMAP_ENTRY _messageEntries[] =
234 {
235 {0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 }
236 };
237 static const AFX_MSGMAP messageMap =
238 { &CDialogBar::GetThisMessageMap, &_messageEntries[0] };
239 return &messageMap;
240 }
241
242#endif // __MSVCPP6__
243
244#endif // _TnbDOXYGEN
245
246
247
248}; //MFC
249}; //TNB
250
251
MFCコントロール共通のヘッダ
ウィンドウ管理.
ダイアログバー拡張ベースクラス.
BOOL m_bChangeDockedSize
ドッキング時のサイズモード。 false ならデフォルトの大きさ、 true ならリサイズした大きさになります。
virtual ~CDialogBarEx()
デストラクタ
void OnUpdateCmdUI(CFrameWnd *pTarget, BOOL bDisableIfNoHndler)
[処理] 状態更新通知
BOOL Create(CWnd *pParentWnd, LPCTSTR lpszTemplateName, UINT nStyle, UINT nID)
[作成] ダイアログバー作成.
virtual BOOL OnInitDialogBar(void)
[通知] ダイアログバー初期化通知
BOOL Create(CWnd *pParentWnd, UINT nIDTemplate, UINT nStyle, UINT nID)
[作成] ダイアログバー作成.
CSize CalcDynamicLayout(int nLength, DWORD nMode)
[計算] サイズ計算
void SetDockedSizeMode(bool isResized)
[設定] ドッキング時サイズモード設定.
CSize m_sizeDocked
ドッキング時のサイズ
CSize m_sizeFloating
フローティング時のサイズ
CDialogBarEx(...)
コンストラクタ
CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz)
[計算] 水平方向サイズ計算
TNB Library
Definition: TnbDoxyTitle.txt:2