VC++ CEdit自绘阶段性总结

在设计CSWEdit过程中,字体的设置写在了

HBRUSH CSWEdit::CtlColor(CDC* pDC, UINT nCtlColor)

里面,比如pDC->SelectObject(&m_font);后来经过测试发现,如果文本内容输入内容非常长,光标的末尾位置不在最右边,而是逐渐往前移动了。后来经过代码排查,发现问题出在CtlColor里面,于是乎将字体的设置放到SetFont里面来实现了,问题解决,代码如下:

VC++ CEdit自绘阶段性总结_第1张图片

HBRUSH CSWEdit::CtlColor(CDC* pDC, UINT nCtlColor)函数部分新代码如下:

HBRUSH CSWEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
	pDC->SetTextColor(m_crFont);
	pDC->SetBkMode(TRANSPARENT);
	if (m_bTransParent)
	{		
		return (HBRUSH)GetStockObject(NULL_BRUSH);
	}
	else
	{
		return m_brBkgr;
	}
}

 

你可能感兴趣的:(VC++(基础篇),VC++(日积月累篇),VC++(控件篇))