首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

为什么小弟我自绘的edit控件一开始就会得到焦点

2014-01-08 
为什么我自绘的edit控件一开始就会得到焦点?如上图所示,我的鼠标都没有移动到edit控件上,就是一进入到这个

为什么我自绘的edit控件一开始就会得到焦点?
为什么小弟我自绘的edit控件一开始就会得到焦点
如上图所示,我的鼠标都没有移动到edit控件上,就是一进入到这个界面的时候,edit控件就获取了焦点这事为什么啊?我用CEdit类的派生类CMyEdit来重绘,代码如下:



因为CEdit::OnPaint();和CPaintDC dc(this);都会调用BeginPaint
BeginPaint 会自动设置剪切区域(在无效区域以外的区域绘制不会有任何效果),并使无效区域成为有效区域


[解决办法]
引用:
因为CEdit::OnPaint();和CPaintDC dc(this);都会调用BeginPaint


BeginPaint 会自动设置剪切区域(在无效区域以外的区域绘制不会有任何效果),并使无效区域成为有效区域


据此,可以分析一下CEdit::OnPaint();先后顺序的不同产生的不同结果:
如果CEdit::OnPaint();先执行,那么,CPaintDC dc(this);执行时已没有无效区域,相当于dc的所有区域都是剪切区域(在剪切区域绘制不会有任何效果)
反之,如果CPaintDC dc(this);先执行, CEdit::OnPaint();也不会绘制出任何东西出来


引用:
那为什么我画边框的时候,就不会出现这个问题呢?我还是没懂~~


画边框的时候,你是用GetWindowDC获取的DC,剪切区域不一样

热点排行