在 MFC(Microsoft Foundation Classes)的 CSplitterWnd 类中,确实存在名为 OnDrawSplitter 的受保护方法。

以下是 OnDrawSplitter 方法的签名:
virtual void OnDrawSplitter(
   CDC* pDC,
   ESplitType nType,
   const CRect& rectArg
);

这个方法允许你自定义分隔条的绘制。你可以在派生类中重写这个方法,以实现自定义的绘制效果。

参数说明:

  •  pDC:指向 CDC 对象的指针,表示绘制的设备上下文。

  •  nType:表示分隔条的类型,可以是 splitterBox(分隔框)、splitterBar(分隔条)或 splitterIntersection(分隔交叉点)。

  •  rectArg:表示分隔条的矩形区域。


使用例子:
class CMySplitterWnd : public CSplitterWnd
{
public:
   // 构造函数等...

protected:
   virtual void OnDrawSplitter(
      CDC* pDC,
      ESplitType nType,
      const CRect& rectArg
   );
   DECLARE_MESSAGE_MAP()
};

BEGIN_MESSAGE_MAP(CMySplitterWnd, CSplitterWnd)
   // 其他消息映射...
END_MESSAGE_MAP()

void CMySplitterWnd::OnDrawSplitter(
   CDC* pDC,
   ESplitType nType,
   const CRect& rectArg
)
{
   // 在这里执行自定义的分隔条绘制
   // 根据 nType 和 rectArg 进行相应的绘制
}

请注意,这只是一个示例,你可以根据具体的需求实现自定义的绘制效果。


转载请注明出处:http://www.pingtaimeng.com/article/detail/22463/MFC/CSplitterWnd