次の方法で共有


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));
}

参照

参照

CHeaderCtrl クラス

階層図

HDM_GETOVERFLOWRECT

RECT

その他の技術情報

CHeaderCtrl のメンバ