Share via


CWnd::OnNcCalcSize

更新 : 2007 年 11 月

クライアント領域のサイズと位置を計算する必要があるときに、フレームワークからこのメンバ関数が呼び出されます。

afx_msg void OnNcCalcSize(
   BOOL bCalcValidRects,
   NCCALCSIZE_PARAMS* lpncsp 
);

パラメータ

  • bCalcValidRects
    クライアント領域内の有効な情報を含む部分をアプリケーションが指定する必要があるかどうかを指定します。Windows は有効な情報を新しいクライアント領域内の指定された領域へコピーします。このパラメータが TRUE の場合は、アプリケーションはクライアント領域のどの部分が有効であるかを指定します。

  • lpncsp
    NCCALCSIZE_PARAMS データ構造体を指します。この構造体は、アプリケーションが CWnd の四角形 (クライアント領域、境界線、タイトル、スクロール バーなどを含む) の新しい座標やサイズを計算するための情報を保持します。

解説

このメッセージを処理することにより、ウィンドウの位置やサイズが変更されたときに、アプリケーションでウィンドウのクライアント領域を制御できます。

bCalcValidRects の値とは無関係に、NCCALCSIZE_PARAMS 構造体のメンバ rgrc で指定した配列の最初の四角形がウィンドウの座標を持ちます。子ウィンドウでの座標は、親ウィンドウのクライアント領域の相対座標です。トップレベル ウィンドウでの座標は、画面座標です。アプリケーションは、クライアント領域のサイズと位置を反映するために、rgrc[0] の四角形を修正する必要があります。

bCalcValidRects が TRUE のときのみ、rgrc[1]rgrc[2] の四角形が有効になります。このとき rgrc[1] には、移動またはサイズ変更される前のウィンドウの座標を保持します。rgrc[2] には、ウィンドウが移動される前のウィンドウのクライアント領域の座標が保持されます。すべての座標は、親ウィンドウまたは画面の相対座標です。

既定の実装では、クライアント領域のサイズをウィンドウの特性 (スクロール バーやメニューなどの有無) を基に計算し、結果を lpncsp に設定します。

bxb29894.alert_note(ja-jp,VS.90).gifメモ :

このメンバ関数は、アプリケーションが Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。この関数に渡されるパラメータの値は、フレームワークがメッセージ受信時に受け取ったパラメータの値に基づいています。この関数の基本クラスの実装を呼び出した場合は、関数に渡したパラメータではなく、メッセージと共に渡されたパラメータ自体が使用されます。

必要条件

ヘッダー : afxwin.h

参照

参照

CWnd クラス

階層図

WM_NCCALCSIZE

CWnd::MoveWindow

CWnd::SetWindowPos

その他の技術情報

CWnd のメンバ