是否有可能在mfc vc ++中“透明化”“编辑框”的背景。我正在尝试不同的方法,但无法做到这一点。
对的,这是可能的。
你必须创建从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;
}
}