自定义CSplitterWnd的自绘代码
void CColorSplitter::OnDrawSplitter(CDC* pDC, ESplitType nType, const CRect& rect)
{
// TODO: 在此添加专用代码和/或调用基类
pDC = GetDC();
if(pDC==NULL)
{
RedrawWindow(rect,NULL,RDW_INVALIDATE|RDW_NOCHILDREN);
return;
}
ASSERT_VALID(pDC);
CRect rc = rect;
switch (nType)
{
case splitBorder:
pDC->Draw3dRect(rc,RGB(150,150,150),RGB(150,150,150));
return; case splitIntersection:
break; case splitBox:
break; case splitBar:
break; default:
ASSERT(FALSE);  // unknown splitter type
}
CSplitterWnd::OnDrawSplitter(pDC, nType, rect);
}结果分割后的每个view到Splitter条之间有一道很细的区域似乎没被重绘,把窗体背后的背景色都给漏出来了,在view的OnDraw里扩大绘图面积都没有用。不知道如何解决。