Last Updated 2004/07/14
Programming Tips Visual C++ MFC ウィンドウ  索 引 
タイトルバー非表示
2004/07/14

ウィンドウからタイトルバーを外す.

SetWindowLong(hwnd, GWL_STYLE, WS_POPUP | WS_BORDER);

こうすることによりタイトルバーは消える.

しかし,WM_PAINT に反応しないタイトルバーの残骸が残ってしまう.
これは非クライアント領域が再描画していないからである.
以下のようにすることにより非クライアント領域も再描画が可能である.

  GetWindowRect(hwnd, &rc);
  xNewAmtOfBorder = GetSystemMetrics(SM_CXFRAME)
                    - GetSystemMetrics(SM_CXBORDER);
  yNewAmtOfBorder = GetSystemMetrics(SM_CYFRAME)
                    - GetSystemMetrics(SM_CYBORDER);

  pt.x = rc.left + xNewAmtOfBorder;
  pt.y = rc.top + yNewAmtOfBorder;
  ScreenToClient( GetParent( hwnd ), &pt );
  SetWindowPos( hwnd, NULL,
                pt.x, pt.y,
                (rc.right - rc.left) - xNewAmtOfBorder * 2,
                (rc.bottom - rc.top) - yNewAmtOfBorder * 2,
                SWP_DRAWFRAME | SWP_NOZORDER );


参照
タイトルバー表示非表示
前後のTips
タイトルバー非表示

DSS ProgrammingTipsCGI Ver2.02