カスタム描画抽象ListCtrlコントロール
[詳解]
#include <TnbMfcAbstractCustomListCtrl.h>
|
| CAbstractCustomListCtrl (void) |
| コンストラクタ [詳解]
|
|
BOOL | DeleteAllItems (void) |
| [設定] 全アイテム削除. [詳解]
|
|
BOOL | DeleteColumn (int nCol) |
| [設定] カラム削除. [詳解]
|
|
BOOL | DeleteItem (int nItem) |
| [設定] アイテム削除. [詳解]
|
|
int | GetCountPerPage () const |
| [取得] 垂直方向に表示されるアイテム数 [詳解]
|
|
DWORD | GetExStyle (void) const |
| [取得] ウィンドウ拡張スタイル取得. [詳解]
|
|
DWORD | GetExtendedStyle (void) |
| [取得] 専用拡張スタイル取得. [詳解]
|
|
POSITION | GetFirstSelectedItemPosition () const |
| [取得] 選択アイテム検索. [詳解]
|
|
int | GetItemCount () const |
| [取得] アイテム数取得 [詳解]
|
|
UINT | GetItemState (int nItem, UINT nMask) const |
| [取得] アイテム状態取得 [詳解]
|
|
int | GetNextItem (int nItem, int nFlags) const |
| [取得] アイテム検索 [詳解]
|
|
int | GetNextSelectedItem (POSITION &_pos) const |
| [取得] 選択アイテム検索. [詳解]
|
|
HWND | GetSafeHwnd (void) const |
| [取得] ウィンドウハンドル取得. [詳解]
|
|
UINT | GetSelectedCount () const |
| [取得] 選択アイテム数取得. [詳解]
|
|
int | GetSelectedItem (void) const |
| [取得] 選択アイテム取得. [詳解]
|
|
DWORD | GetStyle (void) const |
| [取得] ウィンドウスタイル取得. [詳解]
|
|
int | GetTopIndex () const |
| [取得] 一番上表示のアイテム [詳解]
|
|
int | InsertColumn (int nCol, LPCTSTR lpszColumnHeading, int nFormat=LVCFMT_LEFT, int nWidth=-1, int nSubItem=-1) |
| [設定] カラム追加. [詳解]
|
|
int | InsertItem (int nItem, LPCTSTR lpszItem) |
| [設定] アイテム挿入. [詳解]
|
|
BOOL | ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0) |
| [設定] ウィンドウスタイル変更. [詳解]
|
|
BOOL | ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0) |
| [設定] ウィンドウ拡張スタイル変更. [詳解]
|
|
void | SetEraseBkGndOffset (int f=2) |
| [設定] BGクリア調整値設定. [詳解]
|
|
DWORD | SetExtendedStyle (DWORD dwNewStyle) |
| [設定] 専用拡張スタイル設定. [詳解]
|
|
BOOL | SetItemState (int nItem, UINT nState, UINT nMask) |
| [設定] アイテム状態設定 [詳解]
|
|
BOOL | SetItemText (int nItem, int nSubItem, LPCTSTR lpszText) |
| [設定] アイテムテキスト設定. [詳解]
|
|
void | SetSelectedItem (int item) |
| [設定] 選択アイテム設定. [詳解]
|
|
BOOL | SetWindowPos (const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags) |
| [設定] ウィンドウサイズポジション設定. [詳解]
|
|
BOOL | ShowWindow (int nCmdShow) |
| [設定] ウィンドウ表示状態. [詳解]
|
|
カスタム描画抽象ListCtrlコントロール
- 覚え書き
- Reportタイプの一行全選択スタイルをサポートします。
-
OnBeginItemPaint() , OnEndItemPaint() , OnItemPainting() , OnItemPainted() の4つを実装する必要があります。
- 必要ファイル
- TnbMfcAbstractCustomListCtrl.h
- 日付
- 07/12/07 新規作成
-
11/03/04 ReportViewの時、表示範囲に無い、サブアイテムの表示要求をしないようにした。
-
11/09/28 背景描画処理を最適化、 OnDrawBackground() を追加。
-
15/01/27 SetEraseBkGndOffset() を追加。
TnbMfcAbstractCustomListCtrl.h の 37 行目に定義があります。
◆ EState
アイテム状態値.
- 覚え書き
- 実際は define で宣言されています。
列挙値 |
---|
LVIS_ACTIVATING | Not currently supported.
|
LVIS_CUT | The item is marked for a cut-and-paste operation.
|
LVIS_DROPHILITED | The item is highlighted as a drag-and-drop target.
|
LVIS_FOCUSED | The item has the focus, so it is surrounded by a standard focus rectangle. Although more than one item may be selected, only one item can have the focus.
|
LVIS_OVERLAYMASK | The item's overlay image index is retrieved by a mask.
|
LVIS_SELECTED | The item is selected. The appearance of a selected item depends on whether it has the focus and also on the system colors used for selection.
|
LVIS_STATEIMAGEMASK | The item's state image index is retrieved by a mask.
|
TnbMfcAbstractCustomListCtrl.h の 504 行目に定義があります。
◆ CAbstractCustomListCtrl()
◆ DeleteAllItems()
BOOL DeleteAllItems |
( |
void |
| ) |
|
|
inherited |
◆ DeleteColumn()
BOOL DeleteColumn |
( |
int |
nCol | ) |
|
|
inherited |
◆ DeleteItem()
BOOL DeleteItem |
( |
int |
nItem | ) |
|
|
inherited |
◆ GetCountPerPage()
int GetCountPerPage |
( |
| ) |
const |
[取得] 垂直方向に表示されるアイテム数
- 戻り値
- 表示領域の垂直方向に入るアイテム数を返します。
◆ GetExStyle()
DWORD GetExStyle |
( |
void |
| ) |
const |
|
inherited |
[取得] ウィンドウ拡張スタイル取得.
本インスタンスが管理しているウィンドウの拡張スタイルを返します。
- 戻り値
- ウィンドウスタイル。 WS_EX_LEFT や WS_EX_TOPMOST などのシンボルが論理和(or)されている。
◆ GetExtendedStyle()
DWORD GetExtendedStyle |
( |
void |
| ) |
|
|
inherited |
[取得] 専用拡張スタイル取得.
- 戻り値
- 専用拡張スタイル。 LVS_EX_FULLROWSELECT や LVS_EX_GRIDLINES を論理和(or)したものを返します。
◆ GetFirstSelectedItemPosition()
POSITION GetFirstSelectedItemPosition |
( |
| ) |
const |
◆ GetItemCount()
int GetItemCount |
( |
| ) |
const |
◆ GetItemState()
UINT GetItemState |
( |
int |
nItem, |
|
|
UINT |
nMask |
|
) |
| const |
[取得] アイテム状態取得
- 引数
-
nItem | インデックス |
nMask | どの 状態ビット を返すか指定する値。 |
- 戻り値
- 指定アイテムの
状態ビット
。
◆ GetNextItem()
int GetNextItem |
( |
int |
nItem, |
|
|
int |
nFlags |
|
) |
| const |
[取得] アイテム検索
- 引数
-
nItem | 検索を開始するインデックス。 -1 なら最初からになります。 |
nFlags | 以下のいずれかを指定します。
値 | 説明 |
LVNI_ABOVE | 指定したアイテムの上にあるアイテムを検索します。 |
LVNI_ALL | インデックス順で次のアイテムを検索します (既定値)。 |
LVNI_BELOW | 指定したアイテムの下にあるアイテムを検索します。 |
LVNI_TOLEFT | 指定したアイテムの左にあるアイテムを検索します。 |
LVNI_TORIGHT | 指定したアイテムの右にあるアイテムを検索します。 |
以下のフラグも合わせて指定できます。
値 | 説明 |
LVNI_DROPHILITED | アイテムに LVIS_DROPHILITED 状態フラグが設定されている。 |
LVNI_FOCUSED | アイテムに LVIS_FOCUSED 状態フラグが設定されている。 |
LVNI_SELECTED | アイテムに LVIS_SELECTED 状態フラグが設定されている。 |
|
- 戻り値
-
マイナス | 未発見。 |
0以上 | 発見。数値はインデックスNo。 |
◆ GetNextSelectedItem()
int GetNextSelectedItem |
( |
POSITION & |
_pos | ) |
const |
[取得] 選択アイテム検索.
- 引数
-
- 覚え書き
- 本関数を使う前に _pos 値が NULL 以外であることを確認する必要があります。
- 戻り値
-
◆ GetSafeHwnd()
HWND GetSafeHwnd |
( |
void |
| ) |
const |
|
inherited |
[取得] ウィンドウハンドル取得.
本インスタンスが管理しているウィンドウのハンドルを返します。
- 戻り値
- ウィンドウハンドル
◆ GetSelectedCount()
UINT GetSelectedCount |
( |
| ) |
const |
[取得] 選択アイテム数取得.
- 戻り値
- 選択されているアイテム数を返します。
◆ GetSelectedItem()
int GetSelectedItem |
( |
void |
| ) |
const |
◆ GetStyle()
DWORD GetStyle |
( |
void |
| ) |
const |
|
inherited |
[取得] ウィンドウスタイル取得.
本インスタンスが管理しているウィンドウのスタイルを返します。
- 戻り値
- ウィンドウスタイル。 WS_CHILD や WS_MINIMIZE などのシンボルが論理和(or)されている。
◆ GetTopIndex()
int GetTopIndex |
( |
| ) |
const |
[取得] 一番上表示のアイテム
- 戻り値
- 一番上に表示されているアイテムのインデックス
◆ InsertColumn()
int InsertColumn |
( |
int |
nCol, |
|
|
LPCTSTR |
lpszColumnHeading, |
|
|
int |
nFormat = LVCFMT_LEFT , |
|
|
int |
nWidth = -1 , |
|
|
int |
nSubItem = -1 |
|
) |
| |
|
inherited |
[設定] カラム追加.
- 引数
-
nCol | 新しい列のインデックス |
lpszColumnHeading | 文字列 |
nFormat | 列の配置を指定する整数。次の値のどれか 1 つを指定します。LVCFMT_LEFT、LVCFMT_RIGHT、または LVCFMT_CENTER。 |
nWidth | ピクセル単位の列の幅。このパラメータに -1 を指定すると、列の幅は設定されません。 |
nSubItem | 列に関連付けられたサブアイテムのインデックス。このパラメータに -1 を指定すると、列に関連付けられるサブアイテムはありません。 |
- 戻り値
-
0未満 | エラー。 |
0以上 | 成功。値は新しい列のインデックス。 |
◆ InsertItem()
int InsertItem |
( |
int |
nItem, |
|
|
LPCTSTR |
lpszItem |
|
) |
| |
|
inherited |
[設定] アイテム挿入.
- 引数
-
nItem | 挿入するアイテムのインデックス. |
lpszItem | 文字列 |
- 戻り値
-
0未満 | エラー。 |
0以上 | 成功。値は新しいアイテムのインデックス。 |
◆ ModifyStyle()
BOOL ModifyStyle |
( |
DWORD |
dwRemove, |
|
|
DWORD |
dwAdd, |
|
|
UINT |
nFlags = 0 |
|
) |
| |
|
inherited |
◆ ModifyStyleEx()
BOOL ModifyStyleEx |
( |
DWORD |
dwRemove, |
|
|
DWORD |
dwAdd, |
|
|
UINT |
nFlags = 0 |
|
) |
| |
|
inherited |
[設定] ウィンドウ拡張スタイル変更.
- 引数
-
- 戻り値
-
◆ OnBeginItemPaint()
virtual void OnBeginItemPaint |
( |
HDC |
dc | ) |
|
|
protectedpure virtual |
◆ OnChildNotify()
virtual BOOL OnChildNotify |
( |
UINT |
message, |
|
|
WPARAM |
wParam, |
|
|
LPARAM |
lParam, |
|
|
LRESULT * |
_pResult |
|
) |
| |
|
protectedvirtual |
◆ OnDrawBackground()
virtual void OnDrawBackground |
( |
HDC |
dc, |
|
|
const RECT & |
rect |
|
) |
| |
|
protectedvirtual |
◆ OnEndItemPaint()
virtual void OnEndItemPaint |
( |
HDC |
dc | ) |
|
|
protectedpure virtual |
◆ OnItemPainted()
virtual void OnItemPainted |
( |
const TDrawParam * |
pParam | ) |
|
|
protectedpure virtual |
[通知] アイテム描画終わり.
- 覚え書き
- サブアイテム描画が終わったあと、アイテム毎に通知されます。
- 引数
-
[in] | pParam | 描画用情報。 rect は、サブアイテムも含む範囲。 |
CDrawingListCtrlで実装されています。
◆ OnItemPainting()
virtual LRESULT OnItemPainting |
( |
TDrawParam * |
pParam | ) |
|
|
protectedpure virtual |
[通知] アイテム描画.
- 覚え書き
- サブアイテム毎に通知されます。
- 引数
-
[in,out] | pParam | 描画用情報。範囲やアイテムNOが入っています。 |
- 戻り値
-
CDRF_NOTIFYITEMDRAW | 通常の描画を行う(本メソッドでは何もしていない)。 |
CDRF_NEWFONT | フォントや文字色を変更した時返します。 |
CDRF_SKIPDEFAULT | 本メソッドで描画ずみ。 |
CDrawingListCtrl, CSubEditListCtrlで実装されています。
◆ OnSelectItemChanged()
virtual void OnSelectItemChanged |
( |
int |
item | ) |
|
|
protectedvirtual |
◆ PreSubclassWindow()
virtual void PreSubclassWindow |
( |
void |
| ) |
|
|
protectedvirtual |
◆ SetEraseBkGndOffset()
void SetEraseBkGndOffset |
( |
int |
f = 2 | ) |
|
◆ SetExtendedStyle()
DWORD SetExtendedStyle |
( |
DWORD |
dwNewStyle | ) |
|
|
inherited |
[設定] 専用拡張スタイル設定.
- 引数
-
dwNewStyle | 使用する専用拡張スタイル。 LVS_EX_FULLROWSELECT や LVS_EX_GRIDLINES を論理和(or)で指定します。 |
- 戻り値
- 以前の拡張スタイル
m_myListCtrl.SetExtendedStyle(m_myListCtrl.GetExtendedStyle() | LVS_EX_FULLROWSELECT);
◆ SetItemState()
BOOL SetItemState |
( |
int |
nItem, |
|
|
UINT |
nState, |
|
|
UINT |
nMask |
|
) |
| |
[設定] アイテム状態設定
- 引数
-
nItem | インデックス |
nState | 状態ビット の新しい値。 |
nMask | どの 状態ビット を変更するかを指定する値。 |
- 戻り値
-
◆ SetItemText()
BOOL SetItemText |
( |
int |
nItem, |
|
|
int |
nSubItem, |
|
|
LPCTSTR |
lpszText |
|
) |
| |
|
inherited |
[設定] アイテムテキスト設定.
- 引数
-
nItem | アイテムのインデックス |
nSubItem | サブアイテムのインデックス |
lpszText | 文字列 |
- 戻り値
-
◆ SetSelectedItem()
void SetSelectedItem |
( |
int |
item | ) |
|
◆ SetWindowPos()
BOOL SetWindowPos |
( |
const CWnd * |
pWndInsertAfter, |
|
|
int |
x, |
|
|
int |
y, |
|
|
int |
cx, |
|
|
int |
cy, |
|
|
UINT |
nFlags |
|
) |
| |
|
inherited |
[設定] ウィンドウサイズポジション設定.
子ウィンドウ、ポップアップ ウィンドウ、およびトップレベル ウィンドウのサイズ、位置、および Z オーダーを変更します。
- 引数
-
pWndInsertAfter | Z オーダーでこの CWnd オブジェクトより前に配置される CWnd オブジェクトを識別します。このパラメータへは、 CWnd へのポインタか 次の値のいずれか 1 つを指定できます。
- wndBottom ウィンドウを Z オーダーの一番下に置きます。この CWnd が最上位のウィンドウの場合、ウィンドウの最上位ステータスは失われます。 システムでは、このウィンドウをほかのすべてのウィンドウよりも下に置きます。
- wndTop ウィンドウを Z オーダーの先頭に置きます。
- wndTopMost ウィンドウを最上位でないすべてのウィンドウの上に置きます。 ウィンドウは、非アクティブになったときも、最上位の位置を保持します。
- wndNoTopMost ウィンドウを最上位でないすべてのウィンドウの先頭に再配置します (つまり、一番手前のすべてのウィンドウの後ろに置きます)。 ウィンドウが既に非最上位ウィンドウとなっているときは、このフラグは無効です。
|
x | ウィンドウの新しい左辺の位置を指定します。 |
y | ウィンドウの新しい上辺の位置を指定します。 |
cx | ウィンドウの新しい幅を指定します。 |
cy | ウィンドウの新しい高さを指定します。 |
nFlags | サイズ変更オプションおよび位置指定オプションを指定します。このパラメータには、次の値を組み合わせて指定できます。
- SWP_DRAWFRAME ウィンドウの周りにフレーム (ウィンドウ作成時に定義されます) を描画します。
- SWP_FRAMECHANGED ウィンドウのサイズが変化されていない場合でも、ウィンドウに WM_NCCALCSIZE メッセージを送信します。このフラグが指定されていない場合、WM_NCCALCSIZE メッセージはウィンドウのサイズが実際に変化しているときにだけ送られます。
- SWP_HIDEWINDOW ウィンドウを非表示にします。
- SWP_NOACTIVATE ウィンドウをアクティブにしません。このフラグが設定されていないと、ウィンドウはアクティブになり、最上位または非最上位のウィンドウ グループのいずれかの先頭に移動されます (パラメータ pWndInsertAfter の設定に依存します)。
- SWP_NOCOPYBITS クライアント領域の内容全体を破棄します。このフラグが指定されていない場合、クライアント領域の有効な内容はすべて保存されます。保存された内容は、ウィンドウのサイズや位置が再び変更されたときにクライアント領域に復元されます。
- SWP_NOMOVE 現在位置を保持します (x パラメータと y パラメータを無視します)。
- SWP_NOOWNERZORDER オーナー ウィンドウの Z オーダーの位置を変更しません。
- SWP_NOREDRAW 変更があっても再描画しません。このフラグが設定されていると、どのような種類の再描画も行われません。このことは、クライアント領域、非クライアント領域 (タイトルやスクロール バーを含みます)、ウィンドウが移動したことにより覆われない親ウィンドウのあらゆる部分に適用されます。このフラグが設定されているときは、アプリケーションは再描画が必要なウィンドウや親ウィンドウのあらゆる部分を明示的に無効領域または再描画する必要があります。
- SWP_NOREPOSITION SWP_NOOWNERZORDER と同じです。
- SWP_NOSENDCHANGING ウィンドウが WM_WINDOWPOSCHANGING メッセージを受信しないようにします。
- SWP_NOSIZE 現在のサイズを保持します (cx パラメータと cy パラメータを無視します)。
- SWP_NOZORDER 現在の順序を保持します (pWndInsertAfter を無視します)。
- SWP_SHOWWINDOW ウィンドウを表示します。
|
- 戻り値
-
◆ ShowWindow()
BOOL ShowWindow |
( |
int |
nCmdShow | ) |
|
|
inherited |
[設定] ウィンドウ表示状態.
- 引数
-
nCmdShow | CWnd を表示する方法を指定します。次の値のいずれかになります。
- SW_HIDE このウィンドウを非表示にし、他のウィンドウをアクティブにします。
- SW_MINIMIZE ウィンドウを最小化し、システムのリストのトップレベル ウィンドウをアクティブにします。
- SW_RESTORE ウィンドウをアクティブにし、表示します。ウィンドウが最小化または最大化されている場合は、Windows によって元のサイズと位置に戻されます。
- SW_SHOW ウィンドウをアクティブにし、現在のサイズと位置で表示します。
- SW_SHOWMAXIMIZED ウィンドウをアクティブにし、最大表示します。
- SW_SHOWMINIMIZED ウィンドウをアクティブにし、最小化して表示します。
- SW_SHOWMINNOACTIVE ウィンドウを最小化して表示します。現在アクティブなウィンドウはアクティブなまま表示します。
- SW_SHOWNA 現在の状態でウィンドウを表示します。現在アクティブなウィンドウはアクティブなまま表示します。
- SW_SHOWNOACTIVATE ウィンドウを直前のサイズと位置で表示します。現在アクティブなウィンドウはアクティブなまま表示します。
- SW_SHOWNORMAL ウィンドウをアクティブにし、表示します。ウィンドウが最小化または最大化されている場合は、Windows によって元のサイズと位置に戻されます。
|
- 戻り値
-
◆ WindowProc()
virtual LRESULT WindowProc |
( |
UINT |
message, |
|
|
WPARAM |
wParam, |
|
|
LPARAM |
lParam |
|
) |
| |
|
protectedvirtual |