ウィンドウの3D枠を消去する.完全ではないがそれなりの見栄えとなる.
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( cs.style & WS_THICKFRAME ) {
cs.style &= ~WS_THICKFRAME;
}
return CFrameWnd::PreCreateWindow(cs);
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if( CFrameWnd::OnCreate( lpCreateStruct ) == -1 )
return -1;
// エッジを無くす
DWORD dwExStyle = GetWindowLong( m_hWnd, GWL_EXSTYLE );
dwExStyle &= ~WS_EX_WINDOWEDGE;
dwExStyle &= ~WS_EX_CLIENTEDGE;
SetWindowLong( m_hWnd, GWL_EXSTYLE, dwExStyle );
SetWindowPos(NULL, 0, 0, 0, 0,
SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE |
SWP_NOZORDER | SWP_FRAMECHANGED);
return 0;
}
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if( CView::OnCreate( lpCreateStruct ) == -1 )
return -1;
// ここでもエッジを消すようにする
DWORD dwExStyle = GetWindowLong( m_hWnd, GWL_EXSTYLE );
dwExStyle &= ~WS_EX_WINDOWEDGE;
dwExStyle &= ~WS_EX_CLIENTEDGE;
SetWindowLong( m_hWnd, GWL_EXSTYLE, dwExStyle );
return 0;
}
参照
VB のようなフォーム