|
【CSplitterWnd技巧三】能拖动的带背景颜色的分割条(1)
【CSplitterWnd技巧三】能拖动的带背景颜色的分割条 作者:enloo 想实现这个功能,曾经困扰了我一段时间,后来发现原来是犯了一些小错误。 功能: 1,带背景颜色 2,拖动拖动条,能拖动窗口 效果如下: 
程序: ================================================== //MySplitter.h #pragma once #include "stdafx.h" class CMySplitter : public CSplitterWnd { public: CMySplitter(); DECLARE_DYNCREATE(CMySplitter) public: ~CMySplitter(); protected: afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnMouseMove(UINT,CPoint); BOOL PreCreateWindow(CREATESTRUCT& cs); protected: HBRUSH m_hbr; //背景刷子 CString m_clsName; //窗口类名 DECLARE_MESSAGE_MAP() }; ================================================== //MySplitter.cpp #include "MySplitter.h" IMPLEMENT_DYNCREATE(CMySplitter, CSplitterWnd) CMySplitter::CMySplitter() { m_cxSplitter = 4; //must >=4 ,拖动splitter时拖动条的宽度 m_cySplitter = 4; m_cxBorderShare = -4; //按下鼠标时splitter拖动条的偏移量 m_cyBorderShare = -4; m_cxSplitterGap= 16; m_cySplitterGap= 16; //splitter拖动条的宽度 m_hbr = ::CreateSolidBrush(RGB(98,98,98)); m_clsName = "";
|