戻る

ダイアログを指定したクライアント領域サイズに合わせてリサイズする

任意のクライアント領域サイズの矩形情報を設定する。
AdjustWindowRectEx関数でクライアント領域サイズに合ったダイアログサイズを取得する。
取得したダイアログサイズにリサイズする。

サンプルコード

サンプル関数
// パラメータ
//  pWnd	リサイズするダイアログのウィンドウハンドル
//  nWidth	クライアント領域の幅
//  nHeight	クライアント領域の高さ
//  Menu	メニューバーの有無(TRUE:有り、FALSE:無し)
BOOL AdjustWindowClient(CWnd *pWnd, int nWidth, int nHeight, BOOL Menu)
{
	BOOL Rtn;
	RECT RectClient;

	// クライアント領域の矩形情報を設定する。
	Rtn = SetRect(&RectClient, 0, 0, nWidth - 1, nHeight - 1);
	if (Rtn == FALSE)
	{
		return FALSE;
	}

	// クライアント領域の矩形情報に合わせたダイアログサイズを取得する。
	Rtn = AdjustWindowRectEx(&RectClient, pWnd->GetStyle(), Menu, pWnd->GetExStyle());
	if (Rtn == FALSE)
	{
		return FALSE;
	}

	// ダイアログサイズを変更する。
	return pWnd->SetWindowPos(
		NULL,
		0,
		0,
		RectClient.right - RectClient.left + 1,
		RectClient.bottom - RectClient.top + 1,
		SWP_NOMOVE | SWP_NOZORDER);
}
inserted by FC2 system