次の方法で共有


CPagerCtrl::RecalcSize

現在のページャー コントロールにコンテナー内のウィンドウのサイズを再計算させます。

void RecalcSize();

必要条件

**ヘッダー:**afxcmn.h

解説

このメソッドは、PGM_RECALCSIZE メッセージを送信します。このメッセージについては、Windows SDK を参照してください。 その結果、ページャー コントロールは、PGN_CALCSIZE 通知を送信して、コンテナー内のウィンドウのスクロール可能なサイズを取得します。

使用例

CPagerCtrl::RecalcSize メソッドを使用して、現在のページャー コントロールにサイズの再計算を要求する例を次に示します。

void CCSplitButton_s2Dlg::OnXRecalcsize()
{
    // If the child control changes size, call RecalcSize() to change
    // the size of the pager control accordingly.
    m_pager.RecalcSize(); 
    MessageBox(_T("The pager control size has been recalculated."));
}

ページャー コントロールの親ダイアログに計算を要求する代わりに、メッセージ リフレクションを使用して、ページャー コントロールでサイズの再計算を実行する例を次に示します。 この例では、CPagerCtrl クラスから MyPagerCtrl クラスを派生し、メッセージ マップを使用して PGN_CALCSIZE 通知を OnCalcsize 通知ハンドラーに関連付けます。 この例では、その通知ハンドラーがページャー コントロールの幅と高さを固定値に設定します。

BEGIN_MESSAGE_MAP(CMyPagerCtrl, CPagerCtrl)
        ON_NOTIFY_REFLECT(PGN_CALCSIZE, &CMyPagerCtrl::OnCalcSize)
END_MESSAGE_MAP()

// CMyPagerCtrl message handlers
void CMyPagerCtrl::OnCalcSize(NMHDR* code, LRESULT* param)
{
// If the control contained in the pager control changes size, use this
// handler to change the size of the pager control accordingly.

        LPNMPGCALCSIZE tmp = (LPNMPGCALCSIZE)code;
        *param = 0;
        tmp->iWidth = 500;
        tmp->iHeight = 50;
}

参照

参照

CPagerCtrl クラス

階層図

PGM_RECALCSIZE

PGN_CALCSIZE

その他の技術情報

CPagerCtrl のメンバー