WinCE下编辑框控件绘制边框问题?
大家好,今天看到一本VC书上说绘制编辑框边框颜色,基本思路如下,新建一个CColorEdit,其派生于CEdit,在该类中添加WM_CTLCOLOR消息,处理函数中添加代码:
CRect rect;
GetClientRect(rect); //获取客户区域
rect.InflateRect(1, 1, 1, 1);//将客户区域增大一个像素
CBrush brush (m_FrameColor);//创建画刷
pDC->FrameRect(rect,&brush);//绘制边框
m_FrameColor即用于边框颜色绘制。
在对话框程序中添加一个编辑框控件,关联一个控件变量,CColorEdit m_ctlUserName;在OnInitDialog函数中添加代码m_ctlUserName.SetFrameColor(RGB(255, 0, 255));这样生成的编辑框边框颜色就改变了。
现在问题是:这在XP系统下能实现,但在WinCE下一直实现不能,而如果在WM_CTLCOLOR处理函数中修改编辑框的文本颜色、背景色等都能成功,实在不知道为什么了,大家帮忙看下,谢谢哈!!!
我想实现的功能其实就是点击该编辑框时,修改边框颜色,没有获取光标时,则恢复原来的颜色。就像我们注册邮箱那里面的编辑框一样!
[解决办法]
获取焦点 自绘一个框框,失去焦点,画另外的框框