PreCreateWindow如何禁用窗口最大化

comana 2012-12-15 07:37:32
代码里面禁用了用户改变窗口大小,还希望做到屏蔽窗口化按钮,始终保持窗口最大化,但是一旦我加了
cs.style&=~WS_MAXIMIZEBOX这句话,确实有作用,还原窗口的按钮变灰了,但是问题是整个程序就铺满了屏幕,甚至把windows任务栏也遮住了,有没有办法不要遮住任务栏?多谢!

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;

cs.style&=~WS_THICKFRAME;//禁止用户改变窗口大小
cs.style&=~WS_MAXIMIZEBOX;

return TRUE;
}
...全文
243 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-04-03
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
comana 2012-12-16
  • 打赏
  • 举报
回复
comana 2012-12-15
  • 打赏
  • 举报
回复
引用 2 楼 CometNet 的回复:
引用 1 楼 VisualEleven 的回复:CMainFrame::OnCreate函数中MoveWindows就好了 RECT rc; SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0); MoveWindow(rc.left, rc.top, rc.right - rc.left, rc.bott……
你好,不行,还是会遮住任务栏,我是win7,这个有关系吗?
comana 2012-12-15
  • 打赏
  • 举报
回复
引用 1 楼 VisualEleven 的回复:
CMainFrame::OnCreate函数中MoveWindows就好了 RECT rc; SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0); MoveWindow(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);
你好,我加了这段,但是还是一样的效果,还是会遮住任务栏。我试了屏蔽这句话cs.style&=~WS_MAXIMIZEBOX;确实是可以了,不会遮着,但是恢复窗口按钮就又显示出来了 我想要的效果是,既能屏蔽恢复窗口按钮,又不要遮住任务栏,请看一下还有没有办法,多谢!
邓学彬 2012-12-15
  • 打赏
  • 举报
回复
引用 1 楼 VisualEleven 的回复:
CMainFrame::OnCreate函数中MoveWindows就好了 RECT rc; SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0); MoveWindow(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);
正解,取出桌面工作区域就不会错了. sign-----------------------------------------------------------------------
Eleven 2012-12-15
  • 打赏
  • 举报
回复
CMainFrame::OnCreate函数中MoveWindows就好了 RECT rc; SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0); MoveWindow(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧