上一章节说明了如何静态的分割窗口,分割后窗口的分割线是可以拖动的,有的时候我们需要固定分割线,那么如何实现固定分割呢?
我们需要构造出固定分割窗口类(CFixedSplitterWnd),来实现我们对窗口的固定分割,以上一章例来说明。
1。新创建MFC类,从CSplitterWnd继承,并重载WM_LBUTTONDOWN ,WM_MOUSEMOVE 和 WM_SETCURSOR消息响应函数。
2。新构造的CFixedSplitterWnd使用方法和CSplitterWnd一样。
通过MFC类向导,构造CFixedSplitterWnd时,找不到基类CSplitterWnd,可以先选择CWnd,然后手动把基类改成CSplitterWnd。
重载WM_LBUTTONDOWN ,WM_MOUSEMOVE 和 WM_SETCURSOR消息响应函数
// CFixedSplitterWnd メッセージ ハンドラー void CFixedSplitterWnd::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: ここにメッセージ ハンドラー コードを追加するか、既定の処理を呼び出します。 //CSplitterWnd::OnLButtonDown(nFlags, point); CWnd::OnLButtonDown(nFlags, point); } void CFixedSplitterWnd::OnMouseMove(UINT nFlags, CPoint point) { // TODO: ここにメッセージ ハンドラー コードを追加するか、既定の処理を呼び出します。 //CSplitterWnd::OnMouseMove(nFlags, point); CWnd::OnMouseMove(nFlags, point); } BOOL CFixedSplitterWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { // TODO: ここにメッセージ ハンドラー コードを追加するか、既定の処理を呼び出します。 //return CSplitterWnd::OnSetCursor(pWnd, nHitTest, message); return CWnd::OnSetCursor(pWnd, nHitTest, message); }