MFC 编辑框边缘在背景图上显示的是黑色的边框

经常win7和xp下的效果不一样,如果win7没问题,在xp下就显示出黑色的边框


为编辑框添加

消息ON_EN_CHANGE

响应函数实现为:

void CMyDlgInforStu::OnEnChangeEditStuName()
{
CRect rect;
GetDlgItem(IDC_EDIT_STU_NAME)->GetWindowRect(rect);
ScreenToClient(&rect);
InvalidateRect(&rect,TRUE);
}



解释:
ON_EN_CHANGE是一种消息。比如:你有一个从工具箱中,拖动出一个编辑框。在运行程序的时候,用户可以往编辑框中输入东西。此时,编辑框中的内容就发生了改变。内容一旦发生改变,就会产生ON_EN_CHANGE消息。产生这个消息后,程序就会运行对应的消息响应函数,也就是这个:OnEnChangeEdit()注意:这个函数名中的 "Edit" 字样会根据你控件的ID名称不同而改变。
 
InvalidateRect
 该函数向指定的窗体更新区域添加一个矩形,然后窗口客户区域的这一部分将被重新绘制。
InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效 InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。
 
效果如果:姓名的编辑框没有出现黑色的边框了
 

你可能感兴趣的:(mfc,控件)