您的位置:首页 > 其它

单文档 多视图中 如何屏蔽分割条的操作 和设置分隔条的大小

2010-04-13 11:05 459 查看
1.屏蔽分隔条的操作:

我们自己新建一个generic class 继承于CSplitterWnd。

然后为这个类添加消息响应函数:LButtonDown,OnMouseMove,OnSetCursor,

并在这些消息响应函数中不做任何操作。

 

2.而设置分割条的大小和形状,是通过设置这几个变量的值来实现的:m_cxSplitter , m_cxSplitterGap ,

 m_cySplitter , m_cySplitterGap , m_cxBorderShare , m_cyBorderShare , m_cxBorder,
 m_cyBorder 。

 

我的代码如下:

#pragma once
#include "afxext.h"

class CMySplitterWnd :
public CSplitterWnd
{
public:
CMySplitterWnd(void);
~CMySplitterWnd(void);
DECLARE_MESSAGE_MAP()
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
};


 

 

 

#include "StdAfx.h"
#include "MySplitterWnd.h"

CMySplitterWnd::CMySplitterWnd(void)
{
m_cxSplitter = 10;
m_cxSplitterGap = 10;//垂直分隔条的大小
m_cySplitter = 10;
m_cySplitterGap = 10;//水平分隔条
m_cxBorderShare = 0;
m_cyBorderShare = 0;//边界设置
m_cxBorder = 0;
m_cyBorder = 0;//界面设置

}

CMySplitterWnd::~CMySplitterWnd(void)
{
}
BEGIN_MESSAGE_MAP(CMySplitterWnd, CSplitterWnd)
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
ON_WM_SETCURSOR()
END_MESSAGE_MAP()

void CMySplitterWnd::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

CWnd::OnLButtonDown(nFlags, point);
}

void CMySplitterWnd::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

CWnd::OnMouseMove(nFlags, point);
}

BOOL CMySplitterWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default

return CWnd::OnSetCursor(pWnd, nHitTest, message);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文档 class