CHeaderCtrl::GetOverflowRect
更新 : 2007 年 11 月
現在のヘッダー コントロールのオーバーフロー ボタンに外接する四角形を取得します。
BOOL GetOverflowRect(
LPRECT lpRect
) const;
パラメータ
パラメータ |
説明 |
---|---|
[出力] lpRect |
外接する四角形の情報を受け取る RECT 構造体へのポインタ。 |
戻り値
この関数が成功した場合は true。それ以外の場合は false。
解説
ヘッダー コントロールの項目の数が多くてすべての項目を同時に表示できない場合は、表示されていない項目にスクロールするためのオーバーフロー ボタンが表示されます。オーバーフロー ボタンを表示するには、ヘッダー コントロールのスタイルとして、HDS_OVERFLOW と HDF_SPLITBUTTON を設定する必要があります。外接する四角形はそのオーバーフロー ボタンを囲む四角形であり、オーバーフロー ボタンが表示されているときにのみ存在します。詳細については、「Header Control Styles」を参照してください。
このメソッドは、HDM_GETOVERFLOWRECT メッセージを送信します。このメッセージについては、Windows SDK を参照してください。
必要条件
ヘッダー : afxcmn.h
このコントロールは、Windows Vista およびそれ以降のバージョンでサポートされています。
このメソッドに関するその他の要件については、「Windows Vista コモン コントロールの作成要件」を参照してください。
使用例
次のコード例では、現在のヘッダー コントロールにアクセスするために使用される変数 m_headerCtrl を定義しています。この変数は、次の例で使用されます。
CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;
GetOverflowRect メソッドのコード例を次に示します。コードの前半部分では、5 つの列があるヘッダー コントロールを作成しました。ただし、列の区切り記号をドラッグして、列を非表示にできます。一部の列が表示されていない場合、ヘッダー コントロールにはオーバーフロー ボタンが描画されます。次のコード例では、オーバーフロー ボタンの場所の周囲に 3D の四角形を描画します。
void CNVC_MFC_CHeaderCtrl_s4Dlg::OnXGetoverflowrect()
{
if (controlCreated == FALSE) {
MessageBox(_T("Header control has not been created yet."));
return;
}
CRect rect;
// Get the overflow rectangle.
BOOL bRetVal = m_headerCtrl.GetOverflowRect(&rect);
// Get the device context.
CDC* pDC = m_headerCtrl.GetDC();
// Draw around the overflow rect a rectangle that has red
// left and top sides, and green right and bottom sides.
pDC->Draw3dRect(rect, RGB(255, 0, 0), RGB(0, 255, 0));
}