是否可以在mfc vc ++中“透明”“编辑框”的背景。 我正在尝试其他方法,但无法做到这一点。
答案 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;
}
}