Wednesday, November 19, 2008

ウインドウズのデフォルト最大・最小サイズを制限する方法

ウインドウズ・プログラミングの話ですが、ウインドウズのデフォルト最大・最小サイズなどを制限したいときには、WM_GETMINMAXINFOというメッセージのハンドらを上書きすればよいです。
void CMyDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
// TODO : ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼び出します。
lpMMI->ptMinTrackSize.x = 640;
lpMMI->ptMinTrackSize.y = 480;

CDialog::OnGetMinMaxInfo(lpMMI);
}

MINMAXINFOという構造体が持っている以下のメンバーを上書きすることができます。
typedef struct tagMINMAXINFO {
POINT ptReserved; //内部使用のために予約されています。
POINT ptMaxSize; //ウィンドウが最大化されるときの、ウィンドウの幅 (point.x) と高さ (point.y)
POINT ptMaxPosition; //最大化されるときの、ウィンドウの左辺の位置 (point.x) と上辺の位置 (point.y)
POINT ptMinTrackSize;//ウィンドウの最小トラッキングの幅 (point.x) と最小トラッキングの高さ (point.y)
POINT ptMaxTrackSize;//ウィンドウの最大トラッキングの幅 (point.x) と最大トラッキングの高さ (point.y)
} MINMAXINFO;

No comments: