静态文本背景透明化,该如何解决
静态文本背景透明化
项目是个单文档类型,然后在视图view中通过create创建了一个静态文本,view的背景是一张图片,现在的需求是让这个静态文本背景透明,以显示文本所在背景色。我重载了OnCtlColor,在里面写了 pDC->GetBkMode(TRANSPARENT);但是那个文本还是没有透明,为什么呢?怎么处理才能让文本显示所在view的背景色呢?
------解决方案--------------------
pDC->GetBkMode ?
------解决方案--------------------
在静态文本的父窗口中增加WM_CTLCOLOR处理
项目是个单文档类型,然后在视图view中通过create创建了一个静态文本,view的背景是一张图片,现在的需求是让这个静态文本背景透明,以显示文本所在背景色。我重载了OnCtlColor,在里面写了 pDC->GetBkMode(TRANSPARENT);但是那个文本还是没有透明,为什么呢?怎么处理才能让文本显示所在view的背景色呢?
------解决方案--------------------
pDC->GetBkMode ?
------解决方案--------------------
在静态文本的父窗口中增加WM_CTLCOLOR处理
- C/C++ code
HBRUSH CMfcCVView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CView::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if (nCtlColor == CTLCOLOR_STATIC && pWnd->GetDlgCtrlID() == 0x111) { pDC->SetBkMode(TRANSPARENT); return (HBRUSH)::GetStockObject(NULL_BRUSH); } // TODO: Return a different brush if the default is not desired return hbr; }
------解决方案--------------------
------解决方案--------------------
文本的话,用不着CStatic,您直接在图上DrawText好了。
------------------------------------