MFC中如何使窗口大小无法改变?还有如何固定切分视图的宽使其无法改变?
答案:2 悬赏:60 手机版
解决时间 2021-04-04 06:01
- 提问者网友:棒棒糖
- 2021-04-03 17:53
RT
最佳答案
- 五星知识达人网友:白昼之月
- 2021-04-03 18:51
重载CSplitterWnd类
然后:
//以下两个函数禁止分割条移动
void CSplitter::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CWnd::OnLButtonDown(nFlags, point);
//CSplitterWnd::OnLButtonDown(nFlags, point);
}
void CSplitter::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CWnd::OnMouseMove(nFlags, point);
//CSplitterWnd::OnMouseMove(nFlags, point);
}
然后:
//以下两个函数禁止分割条移动
void CSplitter::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CWnd::OnLButtonDown(nFlags, point);
//CSplitterWnd::OnLButtonDown(nFlags, point);
}
void CSplitter::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CWnd::OnMouseMove(nFlags, point);
//CSplitterWnd::OnMouseMove(nFlags, point);
}
全部回答
- 1楼网友:千夜
- 2021-04-03 20:11
一、新建一个类cmysplitter,基类为csplitterwnd。(注:在classwizard中你可能找不到基类csplittewnd,可以先使其派生至generic wnd,然后手动将文件中wnd换成csplitterwnd)
二,使新建的类cmysplitter的对象成为cmainframe的成员,在cmainframe::oncreateclient中建立分割窗口。
三,锁定切分条
当用户创建好分割窗口后,有时并不希望通过拖动切分条来调节窗口的大小。这时就必须锁定切分条。锁定切分条的最简单的方法莫过于不让csplitterwnd来处理wm_lbuttondown,wm_mousemove,wm_setcursor消息,而是将这些消息交给cwnd窗口进行处理,从而屏蔽掉这些消息。拿wm_lbuttondown处理过程来说。修改为如下:
void cmysplitterwnd::onlbuttondown(uint nflags,cpoint point) {
cwnd::onlbuttondown(nflags,point);
}
其余的处理方法类似。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯