是否可以在mfc vc ++中“透明”“编辑框”的背景? [关闭]

问题描述 投票:-1回答:1

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

winapi mfc
1个回答
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;
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.