TNB Library
クラス | 公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CRowHeaderCtrl クラス

ROWヘッダコントロール [詳解]

#include <TnbMfcRowHeaderCtrl.h>

+ CRowHeaderCtrl の継承関係図

公開メンバ関数

 CRowHeaderCtrl (void)
 コンストラクタ [詳解]
 
DWORD GetExStyle (void) const
 [取得] ウィンドウ拡張スタイル取得. [詳解]
 
size_t GetHeaderWidth (void) const
 [取得] ヘッダ幅取得. [詳解]
 
size_t GetItemCount (void) const
 [取得] アイテム数取得 [詳解]
 
HWND GetSafeHwnd (void) const
 [取得] ウィンドウハンドル取得. [詳解]
 
DWORD GetStyle (void) const
 [取得] ウィンドウスタイル取得. [詳解]
 
int HitTest (const CPoint &pt) const
 [取得] ヒットテスト. [詳解]
 
int InsertItem (int item, const IDrawable &draw)
 [設定] アイテム挿入. [詳解]
 
int InsertItem (int item, LPCTSTR lpszItem)
 [設定] アイテム挿入. [詳解]
 
BOOL ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 [設定] ウィンドウスタイル変更. [詳解]
 
BOOL ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 [設定] ウィンドウ拡張スタイル変更. [詳解]
 
void SetBackground (COLORREF color, const IDrawable *pBkDrawer=NULL, int offsetX=2, int offsetY=0)
 [設定] 背景設定 [詳解]
 
bool SetBuddy (CListCtrl *pCtrl, size_t headerWidth, bool isWidthVariable=false)
 [設定] 相棒リストコントロール設定. [詳解]
 
void SetHeaderDrawer (const IDrawable *pDrawer=NULL)
 [設定] ヘッダ設定 [詳解]
 
void SetHeaderWidth (size_t headerWidth, bool isWidthVariable=false)
 [設定] ヘッダ幅設定. [詳解]
 
bool SetItemDrawer (int item, const IDrawable &draw)
 [設定] アイテム描画情報設定. [詳解]
 
bool SetItemText (int item, LPCTSTR lpszText)
 [設定] アイテム文字情報設定. [詳解]
 
void SetPartialView (bool isPartialOk=false)
 [設定] 半端表示設定. [詳解]
 
void SetTextColor (COLORREF color)
 [設定] テキストカラー設定. [詳解]
 
void SetTextStyle (DWORD ts)
 [設定] テキスト表示スタイル設定. [詳解]
 
BOOL SetWindowPos (const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
 [設定] ウィンドウサイズポジション設定. [詳解]
 
BOOL ShowWindow (int nCmdShow)
 [設定] ウィンドウ表示状態. [詳解]
 

限定公開メンバ関数

virtual void PreSubclassWindow (void)
 [通知] subclassing/unsubclassing functions. [詳解]
 
virtual LRESULT WindowProc (UINT message, WPARAM wParam, LPARAM lParam)
 [通知] for processing Windows messages. [詳解]
 

詳解

ROWヘッダコントロール

使い方
リソースエディタでスタティックコントロールを張り、コントロール変数に割り当て後、 そのコントロール変数の型(CStatic)を本クラスに置き換えて使用します。
必要ファイル
TnbMfcRowHeaderCtrl.h
日付
11/10/31 新規作成
14/04/07 WM_SIZE, WM_MOVE に対応。
14/04/25 InsertItem(IDrawable&) を追加。
14/05/23 表示範囲の修正。
14/05/26 HitTest() を追加。 SetPartialView() を新規。
14/10/15 GetHeaderWidth() を新規。
15/10/01 カラム幅変更時にバディに横スクロールバー制限モードなのに出てしまうのを(とりあえず)改善

TnbMfcRowHeaderCtrl.h42 行目に定義があります。

構築子と解体子

◆ CRowHeaderCtrl()

CRowHeaderCtrl ( void  )

コンストラクタ

TnbMfcRowHeaderCtrl.h48 行目に定義があります。

関数詳解

◆ GetExStyle()

DWORD GetExStyle ( void  ) const
inherited

[取得] ウィンドウ拡張スタイル取得.

本インスタンスが管理しているウィンドウの拡張スタイルを返します。

戻り値
ウィンドウスタイル。 WS_EX_LEFT や WS_EX_TOPMOST などのシンボルが論理和(or)されている。

◆ GetHeaderWidth()

size_t GetHeaderWidth ( void  ) const

[取得] ヘッダ幅取得.

戻り値
Rowヘッダの幅(ピクセル)。

TnbMfcRowHeaderCtrl.h173 行目に定義があります。

◆ GetItemCount()

size_t GetItemCount ( void  ) const

[取得] アイテム数取得

覚え書き
相棒のリストコントロールの GetItemCount() と同じ値になります。
戻り値
アイテム数

TnbMfcRowHeaderCtrl.h183 行目に定義があります。

◆ GetSafeHwnd()

HWND GetSafeHwnd ( void  ) const
inherited

[取得] ウィンドウハンドル取得.

本インスタンスが管理しているウィンドウのハンドルを返します。

戻り値
ウィンドウハンドル

◆ GetStyle()

DWORD GetStyle ( void  ) const
inherited

[取得] ウィンドウスタイル取得.

本インスタンスが管理しているウィンドウのスタイルを返します。

戻り値
ウィンドウスタイル。 WS_CHILD や WS_MINIMIZE などのシンボルが論理和(or)されている。

◆ HitTest()

int HitTest ( const CPoint &  pt) const

[取得] ヒットテスト.

指定の座標のアイテム番号を返します。

引数
ptクライアント座標
戻り値
-99ヘッダ部
マイナスアイテムなし
上記以外アイテム番号

TnbMfcRowHeaderCtrl.h277 行目に定義があります。

◆ InsertItem() [1/2]

int InsertItem ( int  item,
const IDrawable draw 
)

[設定] アイテム挿入.

覚え書き
相棒のリストコントロールの InsertItem() をアイテム文字列は空でコールし、 lpszItem は rowヘッダの文字列として使用します。
引数
itemアイテムインデックス.
draw描画情報。クローンを記憶しますので、破棄してかまいません。
戻り値
マイナス失敗
0以上成功。値は、挿入したアイテムインデックス。

TnbMfcRowHeaderCtrl.h259 行目に定義があります。

◆ InsertItem() [2/2]

int InsertItem ( int  item,
LPCTSTR  lpszItem 
)

[設定] アイテム挿入.

覚え書き
相棒のリストコントロールの InsertItem() をアイテム文字列は空でコールし、 lpszItem は rowヘッダの文字列として使用します。
引数
itemアイテムインデックス.
lpszItem文字列
戻り値
マイナス失敗
0以上成功。値は、挿入したアイテムインデックス。

TnbMfcRowHeaderCtrl.h237 行目に定義があります。

◆ ModifyStyle()

BOOL ModifyStyle ( DWORD  dwRemove,
DWORD  dwAdd,
UINT  nFlags = 0 
)
inherited

[設定] ウィンドウスタイル変更.

引数
dwRemove除去するスタイルを指定する。
dwAdd追加するスタイルを指定する。
nFlagsSetWindowPos() に渡すフラグ。0なら SetWindowPos() を呼びません。
戻り値
TRUE成功.
FALSE失敗.

◆ ModifyStyleEx()

BOOL ModifyStyleEx ( DWORD  dwRemove,
DWORD  dwAdd,
UINT  nFlags = 0 
)
inherited

[設定] ウィンドウ拡張スタイル変更.

引数
dwRemove除去する拡張スタイルを指定する。
dwAdd追加する拡張スタイルを指定する。
nFlagsSetWindowPos() に渡すフラグ。0なら SetWindowPos() を呼びません。
戻り値
TRUE成功.
FALSE失敗.

◆ PreSubclassWindow()

virtual void PreSubclassWindow ( void  )
protectedvirtual

[通知] subclassing/unsubclassing functions.

サブクラス化する時コールされます。

覚え書き
CWndのメソッドをオーバーライドしています。

TnbMfcRowHeaderCtrl.h419 行目に定義があります。

◆ SetBackground()

void SetBackground ( COLORREF  color,
const IDrawable pBkDrawer = NULL,
int  offsetX = 2,
int  offsetY = 0 
)

[設定] 背景設定

引数
color背景色。アイテムのないところを塗る色を指定します。
pBkDrawer背景描画情報。省略すると、独自の描画(下部と右部に色反転線)で描画します。
offsetX背景とアイテムの X のオフセットを指定します。省略すると2です。
offsetY背景とアイテムの Y のオフセットを指定します。省略すると0です。

TnbMfcRowHeaderCtrl.h107 行目に定義があります。

◆ SetBuddy()

bool SetBuddy ( CListCtrl pCtrl,
size_t  headerWidth,
bool  isWidthVariable = false 
)

[設定] 相棒リストコントロール設定.

引数
pCtrlリストコントロール。コントロールの位置、大きさが変更されます。
headerWidthRowヘッダの幅(ピクセル)。
isWidthVariabletrue なら可変可能に。 false なら固定に。
戻り値
true成功
false失敗

TnbMfcRowHeaderCtrl.h131 行目に定義があります。

◆ SetHeaderDrawer()

void SetHeaderDrawer ( const IDrawable pDrawer = NULL)

[設定] ヘッダ設定

引数
pDrawerヘッダ描画情報。省略すると、独自の描画(下部と右部に色反転線)で描画します。文字は表示しません。

TnbMfcRowHeaderCtrl.h90 行目に定義があります。

◆ SetHeaderWidth()

void SetHeaderWidth ( size_t  headerWidth,
bool  isWidthVariable = false 
)

[設定] ヘッダ幅設定.

引数
headerWidthRowヘッダの幅(ピクセル)。
isWidthVariabletrue なら可変可能に。 false なら固定に。

TnbMfcRowHeaderCtrl.h162 行目に定義があります。

◆ SetItemDrawer()

bool SetItemDrawer ( int  item,
const IDrawable draw 
)

[設定] アイテム描画情報設定.

引数
itemアイテムインデックス.
draw描画情報。クローンを記憶しますので、破棄してかまいません。
戻り値
true成功
false失敗

TnbMfcRowHeaderCtrl.h199 行目に定義があります。

◆ SetItemText()

bool SetItemText ( int  item,
LPCTSTR  lpszText 
)

[設定] アイテム文字情報設定.

引数
itemアイテムインデックス.
lpszText文字情報
戻り値
true成功
false失敗

TnbMfcRowHeaderCtrl.h217 行目に定義があります。

◆ SetPartialView()

void SetPartialView ( bool  isPartialOk = false)

[設定] 半端表示設定.

スクロールによって全体が見えないアイテムの表示方法を指定します。

引数
isPartialOktrue なら欠けていても表示します。 false なら表示しません(デフォルト)。

TnbMfcRowHeaderCtrl.h70 行目に定義があります。

◆ SetTextColor()

void SetTextColor ( COLORREF  color)

[設定] テキストカラー設定.

覚え書き
各カラムの描画情報を設定していない場合、設定されているフォントと設定されている文字を表示します。 その際使われる色です。
引数
colorテキストカラー。

TnbMfcRowHeaderCtrl.h81 行目に定義があります。

◆ SetTextStyle()

void SetTextStyle ( DWORD  ts)

[設定] テキスト表示スタイル設定.

覚え書き
デフォルトは DT_LEFT | DT_VCENTER です。
引数
tsスタイル。

TnbMfcRowHeaderCtrl.h60 行目に定義があります。

◆ SetWindowPos()

BOOL SetWindowPos ( const CWnd pWndInsertAfter,
int  x,
int  y,
int  cx,
int  cy,
UINT  nFlags 
)
inherited

[設定] ウィンドウサイズポジション設定.

子ウィンドウ、ポップアップ ウィンドウ、およびトップレベル ウィンドウのサイズ、位置、および Z オーダーを変更します。

引数
pWndInsertAfterZ オーダーでこの 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 ウィンドウを表示します。
戻り値
TRUE成功.
FALSE失敗.

◆ ShowWindow()

BOOL ShowWindow ( int  nCmdShow)
inherited

[設定] ウィンドウ表示状態.

引数
nCmdShowCWnd を表示する方法を指定します。次の値のいずれかになります。
  • SW_HIDE このウィンドウを非表示にし、他のウィンドウをアクティブにします。
  • SW_MINIMIZE ウィンドウを最小化し、システムのリストのトップレベル ウィンドウをアクティブにします。
  • SW_RESTORE ウィンドウをアクティブにし、表示します。ウィンドウが最小化または最大化されている場合は、Windows によって元のサイズと位置に戻されます。
  • SW_SHOW ウィンドウをアクティブにし、現在のサイズと位置で表示します。
  • SW_SHOWMAXIMIZED ウィンドウをアクティブにし、最大表示します。
  • SW_SHOWMINIMIZED ウィンドウをアクティブにし、最小化して表示します。
  • SW_SHOWMINNOACTIVE ウィンドウを最小化して表示します。現在アクティブなウィンドウはアクティブなまま表示します。
  • SW_SHOWNA 現在の状態でウィンドウを表示します。現在アクティブなウィンドウはアクティブなまま表示します。
  • SW_SHOWNOACTIVATE ウィンドウを直前のサイズと位置で表示します。現在アクティブなウィンドウはアクティブなまま表示します。
  • SW_SHOWNORMAL ウィンドウをアクティブにし、表示します。ウィンドウが最小化または最大化されている場合は、Windows によって元のサイズと位置に戻されます。
戻り値
TRUE成功.
FALSE失敗.

◆ WindowProc()

virtual LRESULT WindowProc ( UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
protectedvirtual

[通知] for processing Windows messages.

メッセージ受信したらコールされます。 ListBox 関係のメッセージをフックしています。

覚え書き
CWndのメソッドをオーバーライドしています。
引数
messageメッセージ
wParamWPARAM
lParamLPARAM
戻り値
リザルト。

TnbMfcRowHeaderCtrl.h316 行目に定義があります。