Last Updated 2004/09/16
 Programming Tips  Visual C++ MFC ウィンドウ  索 引 
VB のようなフォーム
2004/09/16

VC++ にて VB のようなフォームを表示する.
(クライアント領域をへこませない)
CMainFrame::PreCreateWindow()

    BOOL   bStatus = CFrameWnd::PreCreateWindow(cs);
    cs.dwExStyle &= ~(WS_EX_CLIENTEDGE);
    return bStatus;

CMyView::PreCreateWindow()

    BOOL   bStatus = CView::PreCreateWindow(cs);
    cs.dwExStyle &= ~(WS_EX_CLIENTEDGE);
    return bStatus;
この方法でうまくいかない場合は,

・CMainFrame::OnCreate() で CFrameWnd::OnCreate() 直後に ModifyStyleEx(WS_EX_CLIENTEDGE, 0)

・CMyView::OnCreate() で CView::OnCreate() 直後に ModifyStyleEx(WS_EX_CLIENTEDGE, 0)

とする.

手でウィンドウをリサイズをしないとうまく表示できない場合は,強制的に再表示する.

・CMainFrame::OnCreate() で CFrameWnd::OnCreate() 直後に
  ModifyStyleEx(WS_EX_CLIENTEDGE, 0)
  SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER | SWP_FRAMECHANGED);

こうすれば,ちらつくこともない.


参照
FormView で普通のダイアログデザイン
ウィンドウの3D枠消去
前後のTips
VB のようなフォーム

DSS ProgrammingTipsCGI Ver2.00