如何使Edit控件背景透明if(pWnd->GetDlgCtrlID()==IDC_EDIT_TEST)
{
pDC->SetBkMode(TRANSPARENT);
hbr=(HBRUSH)::GetStockObject(NULL_BRUSH);
}这样后它的背景是黑色的了。
{
pDC->SetBkMode(TRANSPARENT);
hbr=(HBRUSH)::GetStockObject(NULL_BRUSH);
}这样后它的背景是黑色的了。
重载CtlColor
retrun (HBRUSH)GetStockObject(NULL_BRUSH);
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd->GetDlgCtrlID()==IDC_EDIT_TEST)
{
pDC->SetBkMode(TRANSPARENT);
hbr=(HBRUSH)::GetStockObject(WHITE_BRUSH);
}
return hbr;
}继承CEdit什么意思??不太明白,上面就是我对这部分的代码
我已经连上了,但是这个NULL_BRUSH还是黑色的
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
/*pDC->SetBkMode(TRANSPARENT); */
hbr=(HBRUSH)::GetStockObject(NULL_BRUSH);
return hbr;
}
HBRUSH CYourEdit::CtlColor(CDC* pDC, UINT /*nCtlColor*/)
{
pDC->SetBkMode(TRANSPARENT); //设置背景透明 return (HBRUSH)m_brushBkg.GetSafeHandle();
}
return (HBRUSH)m_brushBkg.GetSafeHandle();
-〉
return =(HBRUSH)GetStockObject(NULL_BRUSH);
return (HBRUSH)m_brushBkg.GetSafeHandle();//brushBkg是CBrush的吧?
-〉//这个箭头什么意思
return =(HBRUSH)GetStockObject(NULL_BRUSH);CtlColor而不是OnCtlColor?
重载CtlColor,
它对应的消息映射是=WM_CTLCOLOR
手动添的话是ON_WM_CTLCOLOR_REFLECT()
对应的消息函数是afx_msg HBRUSH CtlColor(CDC* /*pDC*/, UINT /*nCtlColor*/);
函数实现部分
HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT /*nCtlColor*/)
{
pDC->SetBkMode(TRANSPARENT); //设置背景透明 return (HBRUSH)GetStockObject(NULL_BRUSH);
}
直接用这个类声明一个变量作editbox的控制变量
if(pWnd->GetDlgCtrlID()==IDC_EDIT_TEST)
{
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkMode(TRANSPARENT);
m_brMine = ::CreateSolidBrush(RGB(212,208,200));
//与对话框的背景色一致,透明显示
return m_brMine;}