VERIFY(m_wndSplitter1.CreateStatic(this, 2, 1));
VERIFY(m_wndSplitter2.CreateStatic(&m_wndSplitter1, 1, 2,
WS_CHILD | WS_VISIBLE| WS_BORDER ,m_wndSplitter1.IdFromRowCol(0,0)));
VERIFY(m_wndSplitter3.CreateStatic(&m_wndSplitter2, 2, 2,
WS_CHILD | WS_VISIBLE ,m_wndSplitter2.IdFromRowCol(0,0)));
VERIFY(m_wndSplitter3.CreateView(0, 0, RUNTIME_CLASS(CVFSDView),
CSize(300, 450), pContext));
VERIFY(m_wndSplitter3.CreateView(1, 0, RUNTIME_CLASS(CVFSDVIEW01),//01
CSize(300, 450), pContext));
VERIFY(m_wndSplitter3.CreateView(0, 1, RUNTIME_CLASS(CVFSDVIEW10),//10
CSize(300, 450), pContext));
VERIFY(m_wndSplitter3.CreateView(1, 1, RUNTIME_CLASS(CVFSDVIEW11),//11
CSize(300, 450), pContext));
VERIFY(m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CVFSDVIEWBOTTOM),//Bottom
CSize(300, 1200), pContext));
VERIFY(m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CVFSDVIEWRIGHT),//right
CSize(600, 300), pContext));
m_wndSplitter1.SetRowInfo(0,600,0);
m_wndSplitter1.SetRowInfo(1,300,0); m_wndSplitter2.SetColumnInfo(0,900,0);
m_wndSplitter2.SetColumnInfo(1,300,0); m_wndSplitter3.SetRowInfo(0,300,0);
m_wndSplitter3.SetRowInfo(1,300,0);
m_wndSplitter3.SetColumnInfo(0,450,0);
m_wndSplitter3.SetColumnInfo(1,450,0);窗口分屏后鼠标拖动可以改变分屏大小,我想将它屏蔽,请问怎么解决啊,谢谢了
VERIFY(m_wndSplitter2.CreateStatic(&m_wndSplitter1, 1, 2,
WS_CHILD | WS_VISIBLE| WS_BORDER ,m_wndSplitter1.IdFromRowCol(0,0)));
VERIFY(m_wndSplitter3.CreateStatic(&m_wndSplitter2, 2, 2,
WS_CHILD | WS_VISIBLE ,m_wndSplitter2.IdFromRowCol(0,0)));
VERIFY(m_wndSplitter3.CreateView(0, 0, RUNTIME_CLASS(CVFSDView),
CSize(300, 450), pContext));
VERIFY(m_wndSplitter3.CreateView(1, 0, RUNTIME_CLASS(CVFSDVIEW01),//01
CSize(300, 450), pContext));
VERIFY(m_wndSplitter3.CreateView(0, 1, RUNTIME_CLASS(CVFSDVIEW10),//10
CSize(300, 450), pContext));
VERIFY(m_wndSplitter3.CreateView(1, 1, RUNTIME_CLASS(CVFSDVIEW11),//11
CSize(300, 450), pContext));
VERIFY(m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CVFSDVIEWBOTTOM),//Bottom
CSize(300, 1200), pContext));
VERIFY(m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CVFSDVIEWRIGHT),//right
CSize(600, 300), pContext));
m_wndSplitter1.SetRowInfo(0,600,0);
m_wndSplitter1.SetRowInfo(1,300,0); m_wndSplitter2.SetColumnInfo(0,900,0);
m_wndSplitter2.SetColumnInfo(1,300,0); m_wndSplitter3.SetRowInfo(0,300,0);
m_wndSplitter3.SetRowInfo(1,300,0);
m_wndSplitter3.SetColumnInfo(0,450,0);
m_wndSplitter3.SetColumnInfo(1,450,0);窗口分屏后鼠标拖动可以改变分屏大小,我想将它屏蔽,请问怎么解决啊,谢谢了
CSplitterWindow::OnNcHitTest
return HTNOWHERE或者
通过响应WM_MOUSEMOVE、WM_LBUTTONDOWN 等消息,在响应中屏蔽对基类同名函数的调用,直接对CWnd类的同名函数调用
其生成方法是:新建一个类CFixSplitterWnd,基类是CSplitterWnd;
然后重写下面三个函数:
改写以下函数:
void CFixSplitterWnd::OnLButtonDown(UINT nFlags, CPoint point)
{
// 直接返回,不处理
return;
}BOOL CFixSplitterWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// 当光标进入分割窗口时,不允许改变样子,不处理
return FALSE;
}void CRichMineSplitter::OnMouseMove(UINT nFlags, CPoint point)
{
//将CSplitter类的处理改为由CWnd处理
//CSplitterWnd::OnMouseMove(nFlags, point);
CWnd::OnMouseMove(nFlags, point);
}
CMySplitterWnd m_wndSplitter2;
CMySplitterWnd m_wndSplitter3;生成的CMySplitterWnd 文件.h
class CMySplitterWnd : public CSplitterWnd
{
DECLARE_DYNCREATE(CMySplitterWnd)
// Construction
public:
CMySplitterWnd();// Attributes
public:// Operations
public:// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMySplitterWnd)
//}}AFX_VIRTUAL// Implementation
public:
virtual ~CMySplitterWnd(); // Generated message map functions
protected:
//{{AFX_MSG(CMySplitterWnd)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};//////////////////////////////////////////////////
.cpp文件
#include "stdafx.h"
#include "vfsd.h"
#include "MySplitterWnd.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/////////////////////////////////////////////////////////////////////////////
// CMySplitterWndIMPLEMENT_DYNCREATE(CMySplitterWnd, CSplitterWnd)
CMySplitterWnd::CMySplitterWnd()
{
}CMySplitterWnd::~CMySplitterWnd()
{
}
BEGIN_MESSAGE_MAP(CMySplitterWnd, CWnd)
//{{AFX_MSG_MAP(CMySplitterWnd)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
有点纳闷,直接用CSplitterWnd定义的wndSplitter就可以,怎么就用派生类就不行了,求指教
BEGIN_MESSAGE_MAP(CMySplitterWnd, CWnd)
这里还没改过来,谢谢啊,搞定了