CEDIT 的背景色问题,请教了!!

luoxiao_std01 2004-04-29 03:12:29
重载了OnCtlColor(...),修改CEDIT的背景和前景色,但在修改编辑框是字符有重叠!请教大大如何解决?

另:如何用MFC的方法只修改一个确定的CEDIT?请教!
...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
9712210 2004-04-29
  • 打赏
  • 举报
回复
pDC->SetBkMode(TRANSPARENT)这句话不能调用,背景不能设为透明的,否则就会重叠。
需要你自己设定背景色
pDC->SetBkMode(OPAQUE);
pDC->SetBkColor(颜色);
PiggyXP 2004-04-29
  • 打赏
  • 举报
回复
HBRUSH CZilchDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if (pWnd->GetDlgCtrlID() == IDC_MYSTATIC) // 这里判断控件ID!!^_^
{
pDC->SetTextColor(RGB(255, 0, 0));

pDC->SetBkMode(TRANSPARENT);
hbr = m_brush;
}
return hbr;
}
ymbymb 2004-04-29
  • 打赏
  • 举报
回复
BOOL CMyDlg::OnInitDialog()
{
m_wrBrush.CreateSolidBrush(RGB(255,0,0));
..
return TRUE;
}
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(pWnd->GetDlgCtrlID() == IDC_EDIT1)
{
pDC->SetBkColor(RGB(255,0,0));
hbr= (HBRUSH) m_wrBrush;
}

// TODO: Return a different brush if the default is not desired
return hbr;
}

luoxiao_std01 2004-04-29
  • 打赏
  • 举报
回复
分少了吗?不会吧!

问题难吗?这里有很多高手呀!!
luoxiao_std01 2004-04-29
  • 打赏
  • 举报
回复
应该是如何用MFC的方法只修改一个确定的CEDIT的背景、前景?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧