vc++中限制窗口大小
2008-09-21 09:50
375 查看
一般窗口大小的改变,都是用户拖动窗口边框而造成的。所以,我们可以截获主窗口消息WM_NCHITTEST在其响应函数中判断CWnd::OnNcHitTest()的返回值是否为
HTRIGHT,
HTLEFT,
HTTOP,
HTBOTTOM
四个值之一,如果是,说明用户此时已点击了四个边框之一,此时我们应该返回HTCLIENT.那么,鼠标的形状就不会变成水平或垂直的双向箭头,用户就不可能依靠拖动边框来改变窗口大小了。
用class wizard看了以下,没有找到WM_NCHITTEST这个消息,只能手动添加消息映射了 。
在BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)下添上
ON_WM_NCHITTEST()
在框架类的头文件下
声明
afx_msg LRESULT OnNcHitTest(CPoint point);
实现
LRESULT CMainFrame::OnNcHitTest(CPoint point)
{
if(CWnd::OnNcHitTest(point) == HTRIGHT || CWnd::OnNcHitTest(point) == HTLEFT || CWnd::OnNcHitTest(point) == HTTOP || CWnd::OnNcHitTest(point) == HTBOTTOM)
return HTCLIENT;
return CWnd::OnNcHitTest(point);
}
这样的话就不能用鼠标改变大小了,但是,只是限制了四条边,虽然不能拖拉四条边了,但是四个角。因此,再加上
HTTOPLEFT
HTTOPRIGHT
HTBOTTOMLEFT
HTBOTTOMRIGHT
这样4边+4角都不行了。呵呵
不过,还缺一点点 ,缺什么
双击窗口最上方也就是caption区域时窗口会变小,而且没办法回复
怎么办??
有办法,在OnCreate函数中加入如下代码:
SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE)&~WS_MAXIMIZEBOX);
这样最大化按钮也不能用了,而且双击标题栏也不会最大化了。哈哈,大功告成~~~
HTRIGHT,
HTLEFT,
HTTOP,
HTBOTTOM
四个值之一,如果是,说明用户此时已点击了四个边框之一,此时我们应该返回HTCLIENT.那么,鼠标的形状就不会变成水平或垂直的双向箭头,用户就不可能依靠拖动边框来改变窗口大小了。
用class wizard看了以下,没有找到WM_NCHITTEST这个消息,只能手动添加消息映射了 。
在BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)下添上
ON_WM_NCHITTEST()
在框架类的头文件下
声明
afx_msg LRESULT OnNcHitTest(CPoint point);
实现
LRESULT CMainFrame::OnNcHitTest(CPoint point)
{
if(CWnd::OnNcHitTest(point) == HTRIGHT || CWnd::OnNcHitTest(point) == HTLEFT || CWnd::OnNcHitTest(point) == HTTOP || CWnd::OnNcHitTest(point) == HTBOTTOM)
return HTCLIENT;
return CWnd::OnNcHitTest(point);
}
这样的话就不能用鼠标改变大小了,但是,只是限制了四条边,虽然不能拖拉四条边了,但是四个角。因此,再加上
HTTOPLEFT
HTTOPRIGHT
HTBOTTOMLEFT
HTBOTTOMRIGHT
这样4边+4角都不行了。呵呵
不过,还缺一点点 ,缺什么
双击窗口最上方也就是caption区域时窗口会变小,而且没办法回复
怎么办??
有办法,在OnCreate函数中加入如下代码:
SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE)&~WS_MAXIMIZEBOX);
这样最大化按钮也不能用了,而且双击标题栏也不会最大化了。哈哈,大功告成~~~
相关文章推荐
- VC中创建不可改变大小的窗口,及其限制窗口大小的办法
- 【转】VC限制窗口大小
- VC 窗口大小 限制窗口大小
- VC中创建不可改变大小的窗口,及其限制窗口大小的办法
- VC中创建不可改变大小的窗口,及其限制窗口大小的办法
- VC中创建不可改变大小的窗口,及其限制窗口大小的办法
- JAVASCRIPT弹出窗口限制大小的几种方法
- MFC 程序限制窗口最小、最大大小
- VC++之随父窗口变更整合控件大小
- HTML限制不让修改窗口大小
- JS如何设置并限制浏览器窗口的大小
- 限制窗口最小大小
- VC++之随父窗口变化调整控件大小 (没有位置)
- VC++自己创建窗口时禁止窗口拉伸改变大小
- VC MFC 让窗口、控件随着主窗口大小改变而改变
- 限制窗口大小
- vc学习之窗口大小发生变更时使控件自动摆放到合适的位置
- VC中创建不可改变大小的窗口
- [VB] 限制窗口大小
- VC单文档分割窗口2--限制分割条