TNB Library
TnbMfcHeaderlockListCtrl.h
[詳解]
1#pragma once
12
13
14
15//TNB Library
16namespace TNB {
17namespace MFC {
18
19
20
31template<typename TYP = CListCtrl>
32class CHeaderlockListCtrlT : public TYP
33{
34 DEFSUPER(TYP);
35public:
36
47 int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1)
48 {
49 int r = _super::InsertColumn(nCol, lpszColumnHeading, nFormat, nWidth, nSubItem);
50 if ( r == 0 )
51 {
52 CHeaderCtrl* pHeaderCtrl = _super::GetHeaderCtrl();
53 if ( pHeaderCtrl != NULL )
54 {
55 HDITEM hi;
56 hi.mask = HDI_FORMAT;
57 if ( pHeaderCtrl->GetItem(nCol, &hi) )
58 {
59 hi.fmt = (hi.fmt & ~LVCFMT_JUSTIFYMASK) | nFormat;
60 hi.mask = HDI_FORMAT;
61 pHeaderCtrl->SetItem(nCol, &hi);
62 }
63 }
64 }
65 return r;
66 }
67
74 int GetSelectedItem(void) const
75 {
76 return _super::GetNextItem(-1, LVNI_ALL | LVNI_SELECTED);
77 }
78
84 void SetSelectedItem(int item)
85 {
86 if ( item >= 0 )
87 {
88 _super::SetItemState(item, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
89 _super::EnsureVisible(item, false);
90 }
91 else
92 {
93 int i = GetSelectedItem();
94 if ( i >= 0 )
95 {
96 _super::SetItemState(i, 0, LVIS_SELECTED | LVIS_FOCUSED);
97 }
98 }
99 }
100
106 void SetAdjustWidthMode(bool b = true)
107 {
108 m_headerCtrl.SetAdjustWidthMode(b);
109 }
110
116 void EnableChangeWidth(bool b = true)
117 {
118 m_headerCtrl.EnableChangeWidth(b);
119 }
120
127 {
128 return &m_headerCtrl;
129 }
130
131protected:
137 virtual void PreSubclassWindow(void)
138 {
139 ASSERT0( (_super::GetStyle() & LVS_TYPEMASK) == LVS_REPORT, "CMyListCtrl", "サポートできるのは Reportタイプのみです。" );
140 CHeaderCtrl* pHeaderCtrl = _super::GetHeaderCtrl();
141 if ( pHeaderCtrl != NULL )
142 {
143 m_headerCtrl.SubclassWindow(*pHeaderCtrl);
144 m_headerCtrl.EnableChangeWidth(true);
145 }
146 _super::PreSubclassWindow();
147 }
148
149private:
150 CDrawingHeaderCtrl m_headerCtrl;
151
152};
153
154
155
167
168
169
170}; //MFC
171}; //TNB
172
173
174
描画情報ListCtrl関係のヘッダ
描画情報HeaderCtrlコントロール
void SetAdjustWidthMode(bool b=true)
[設定] 幅自動調整モード設定.
void EnableChangeWidth(bool b=true)
[設定] 幅変更モード設定.
ヘッダロックリストコントロール.
void SetAdjustWidthMode(bool b=true)
[設定] 幅自動調整モード設定.
void EnableChangeWidth(bool b=true)
[設定] 幅変更モード設定.
CDrawingHeaderCtrl * GetHeaderCtrl(void)
[取得] ヘッダコントロール参照.
void SetSelectedItem(int item)
[設定] 選択アイテム設定.
virtual void PreSubclassWindow(void)
[通知] subclassing/unsubclassing functions.
int GetSelectedItem(void) const
[取得] 選択アイテム取得.
int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat=LVCFMT_LEFT, int nWidth=-1, int nSubItem=-1)
[挿入] カラム追加.
CHeaderlockListCtrlT CHeaderlockListCtrl
ヘッダロックリストコントロール.
TNB Library
Definition: TnbDoxyTitle.txt:2