如何修改CRectTracker的框的颜色呢
怎么修改CRectTracker的框的颜色呢
用CRectTracker做拖动拉伸,它会画一框,有八个黑角。怎么修改这个框和八个黑角的颜色呢
------解决方案--------------------
用CRectTracker做拖动拉伸,它会画一框,有八个黑角。怎么修改这个框和八个黑角的颜色呢
------解决方案--------------------
- C/C++ code
// 把MFC的CRectTracker类源码的Draw(CDC* pDC)函数源码,复制到自己的Draw函数。 void CMyRectTracker::Draw(CDC* pDC) const { // ...... // draw lines // 边框颜色 if ((m_nStyle & (dottedLine|solidLine)) != 0) { if (m_nStyle & dottedLine) { // pOldPen = pDC->SelectObject(CPen::FromHandle(_afxBlackDottedPen)); pOldPen = pDC->SelectObject(/*你自定义的颜色刷子*/); } else { // pOldPen = (CPen*)pDC->SelectStockObject(BLACK_PEN); pOldPen = pDC->SelectObject(/*你自定义的颜色刷子*/ } // ...... // draw resize handles // 八个黑角的颜色 if ((m_nStyle & (resizeInside|resizeOutside)) != 0) { UINT mask = GetHandleMask(); for (int i = 0; i < 8; ++i) { if (mask & (1<<i)) { GetHandleRect((TrackerHit)i, &rect); pDC->FillSolidRect(rect, RGB(/*你想要的颜色*/)); // RGB(0, 0, 0)); } } } // ...... }