清泛IT社区
标题:
c++关闭按钮灰掉
[打印本页]
作者:
清泛网
时间:
2016-04-07 10:48
标题:
c++关闭按钮灰掉
(, 下载次数: 3430)
上传
点击文件名下载附件
下载积分: 经验 1
通过系统菜单灰掉:
//获得系统菜单
CMenu *pMenu = GetSystemMenu(false);
//获得关闭按钮ID
UINT ID = pMenu->GetMenuItemID(pMenu->GetMenuItemCount()-1);
//使关闭按钮无效
pMenu->EnableMenuItem(ID,MF_GRAYED);
复制代码
启用:
//获得系统菜单
CMenu *pMenu = GetSystemMenu(false);
//获得关闭按钮ID
UINT ID = pMenu->GetMenuItemID(pMenu->GetMenuItemCount()-1);
//使关闭按钮可用
pMenu->EnableMenuItem(ID,MF_ENABLED);
复制代码
同理,最大化、最小化按钮灰掉&启用代码如下:
//禁用最小化按钮
void CMainFrame::OnMenudismin()
{
//获得窗口风格
Style = ::GetWindowLong(m_hWnd,GWL_STYLE);
//设置新的风格
Style &= ~(WS_MINIMIZEBOX);
::SetWindowLong(m_hWnd,GWL_STYLE,Style);
GetWindowRect(&Rect);
//重画窗口边框
::SetWindowPos(m_hWnd,HWND_TOP,Rect.left,Rect.top,Rect.Width(),Rect.Height(),SWP_DRAWFRAME);
}
//使最小化按钮有效
void CMainFrame::OnMenuablemin()
{
//获得窗口风格
Style = ::GetWindowLong(m_hWnd,GWL_STYLE);
//设置新的风格
Style |= WS_MINIMIZEBOX;
::SetWindowLong(m_hWnd,GWL_STYLE,Style);
GetWindowRect(&Rect);
//重画窗口边框
::SetWindowPos(m_hWnd,HWND_TOP,Rect.left,Rect.top,Rect.Width(),Rect.Height(),SWP_DRAWFRAME);
}
//禁用最大化按钮
void CMainFrame::OnMenudismax()
{
//获得窗口风格
Style = ::GetWindowLong(m_hWnd,GWL_STYLE);
//设置新的风格
Style &= ~(WS_MAXIMIZEBOX);
::SetWindowLong(m_hWnd,GWL_STYLE,Style);
GetWindowRect(&Rect);
//重画窗口边框
::SetWindowPos(m_hWnd,HWND_TOP,Rect.left,Rect.top,Rect.Width(),Rect.Height(),SWP_DRAWFRAME);
}
//使最大化按钮有效
void CMainFrame::OnMenuablemax()
{
//获得窗口风格
Style = ::GetWindowLong(m_hWnd,GWL_STYLE);
//设置新的风格
Style |= WS_MAXIMIZEBOX;
::SetWindowLong(m_hWnd,GWL_STYLE,Style);
GetWindowRect(&Rect);
//重画窗口边框
::SetWindowPos(m_hWnd,HWND_TOP,Rect.left,Rect.top,Rect.Width(),Rect.Height(),SWP_DRAWFRAME);
}
复制代码
欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/)
Powered by Discuz! X3.3