询问者
MFC中关于窗口分割后,如何控制分割条的移动范围

常规讨论
-
问题描述:
用MFC 建了一个工程,并将窗口分成了上下两行,并将上边一行分成左右两个窗口。效果如下
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\ \\ \\
\\ \\ \\
\\ 分 \\
\\ 隔 \\
\\ 条 \\
\\ 2 \\
\\ \\ \\
\\\AAAAAAAAA\\\\\\\\\\\\\\\\\分隔条1\\\\\\\\\\\
\\ \\
\\ \\
\\ \\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
要达到的效果是限制分隔条的移动范围,只能往左拖动,而不能往右拖动,分割条1可以任意拖动。
开发环境:winxp,VS2005,MYSQL- 已编辑 唐国粟 2010年2月1日 13:36
全部回复
-
这个好办:
1) 在项目中添加一个类,CSplitterWndEx1 公有继承于CSplitterWnd 类;
2) 在CSplitterWndEx1 类中响应WM_MOUSEMOVE 消息, 创建OnMouseMove 函数;
3) 在CSplitterWndEx1::OnMouseMove(UINT nFlags, CPoint point) 函数添加以下代码:
if(point.x <= 200)
CSplitterWnd::OnMouseMove(nFlags, point);
4) 在MainFrm.h 文件中找到m_splitterWnd 变量的定义,将CSplitterWnd m_splitterWnd; 改为 CSpitterWndEx1 m_splitterWnd;
这样纵向分割条只能在0-200 个像素的宽度中移动了。 如果想控制水平分隔条,就检查point.y 的值。- 已编辑 Michael Lee2Microsoft employee, Moderator 2010年2月1日 13:39