ドキュメントビューを使用する為にダイアログベースではなく CFormView にて作成した場合,見た目は SDI となる.
これをダイアログベースで作った時の様にするには以下の様にする.
それなりに見える.
// サイズ変更を禁止 / 最大化ボタンを削除
BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle,
CWnd* pParendWnd, CCreateContext* pContext) {
return CFrameWnd::LoadFrame(nIDResource,
dwDefaultStyle & ~(WS_THICKFRAME | WS_MAXIMIZEBOX),
pParentWnd,
pContext);
}
// クライアント境界フラット
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) {
if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE;
cs.dwExStyle = WS_EX_STATICEDGE;
return TRUE;
}
// システムメニューから"最大化"と"サイズ"を削除
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {
int t = CFrameWnd::OnCreate(lpCreateStruct);
CMenu* menu = GetSystemMenu(FALSE);
menu->EnableMenuItem(SC_RESTORE, MF_BYCOMMAND | MF_ENABLED);
menu->RemoveMenu(SC_MAXIMIZE, MF_BYCOMMAND);
menu->RemoveMenu(SC_SIZE, MF_BYCOMMAND);
}
参照
VB のようなフォーム