这些函数都可以把标题栏删除,但是当窗口最大化时,程序窗口会覆盖显示器下方的任务栏。
1、 ModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED); 2、 ModifyStyle(WS_CAPTION, 0, 1);3、 SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW &~WS_CAPTION);4、 LONG lStyle = ::GetWindowLong(this->m_hWnd, GWL_STYLE);
::SetWindowLong(this->m_hWnd, GWL_STYLE, lStyle & ~WS_CAPTION);
::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE|SWP_FRAMECHANGED); 请问又什么方式,既可以删除任务栏,又可以在最大化的时候不要覆盖任务栏呢?
1、 ModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED); 2、 ModifyStyle(WS_CAPTION, 0, 1);3、 SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW &~WS_CAPTION);4、 LONG lStyle = ::GetWindowLong(this->m_hWnd, GWL_STYLE);
::SetWindowLong(this->m_hWnd, GWL_STYLE, lStyle & ~WS_CAPTION);
::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE|SWP_FRAMECHANGED); 请问又什么方式,既可以删除任务栏,又可以在最大化的时候不要覆盖任务栏呢?
// WM_SYSCOMMAND Message
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
if(nID == SC_MAXIMIZE)
{
HWND hWnd = ::FindWindow(_T("Shell_TrayWnd"), NULL);
if(NULL != hWnd)
{
CRect rc;
::GetWindowRect(hWnd, &rc);
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN) - rc.Height();
rc.top = rc.left = 0;
rc.right = cx;
rc.bottom = cy;
MoveWindow(&rc);
return ;
}
}
CFrameWnd::OnSysCommand(nID, lParam);
}
rc.bottom = GetSystemMetrics(SM_CYFULLSCREEN);