在mfc vc ++中可以“透明”“编辑框”的背景吗?

时间:2019-03-15 11:44:42

标签: winapi mfc

是否可以在mfc vc ++中“透明”“编辑框”的背景。 我正在尝试其他方法,但无法做到这一点。

1 个答案:

答案 0 :(得分:1)

是的,有可能。

您必须创建从CEdit派生的类,并实现自己的ON_WM_CTLCOLOR_REFLECT处理程序,如下所示:

BEGIN_MESSAGE_MAP(CTransparentEdit, CEdit)
    ON_WM_CTLCOLOR_REFLECT()
END_MESSAGE_MAP()

class CTransparentEdit : public CEdit
{
  ....
  CBrush   m_brBkgnd;
  afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor)
  {
    m_brBkgnd.DeleteObject();
    m_brBkgnd.CreateStockObject(NULL_BRUSH);
    pDC->SetBkMode(TRANSPARENT);
    return (HBRUSH)m_brBkgnd;
  }
}