現在のページャー コントロールにコンテナー内のウィンドウのサイズを再計算させます。
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;
}