invalidate的意思是“使无效”,其实就是使窗口无效。使当前的窗口无效的目的就是让Windows知道这个窗口现在该重新绘制一下了。
任何时候当你想 擦除 并 绘制 窗口的时候,就可以在别的函数中完成功能代码之后Invalidat()一下。OnDraw马上就会被调用了。
CWnd* pWnd = GetDlgItem(IDC_EDIT_SHOW);
if(pWnd != nullptr)
{
pWnd->SetFont(&m_textFont);
if(strID != NULL)
{
CString str;
str.LoadString(strID);//从string table读取字符串
pWnd->SetWindowText(str);
}
pWnd->EnableWindow(bEnabled);
pWnd->Invalidate();
}