对话框带有背景 static控件返回透明画刷,文字切换有重叠现象有关问题

对话框带有背景 static控件返回透明画刷,文字切换有重叠现象问题
对话框带有背景,对话框上的 static控件返回透明画刷,文字部分能够正常透过对话框背景显示,但是文字切换有重叠现象。尝试着用重绘对话框却没有实现。
因为是通过按钮,实现双语言切换,我在调用切换语言函数之后,尝试着用重绘对话框却还是有重叠现象。求指点啊。

------解决方案--------------------
在设置CStatic的文字内容之前,先调用InvalidateRect/Invalidate()强制刷新该CStatic区域,然后调用SetDlgItemText(IDC_STATIC1, _T("..."));
------解决方案--------------------
CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC1);
ASSERT(pStatic);
CRect rc;
pStatic->GetWindowRect(&rc);
ScreenToClient(&rc);
InvalidateRect(&rc);
CString str;
static int i=0;
str.Format(_T("%d _Hello"), i++);
pStatic->SetWindowText(str);

------解决方案--------------------
引用:
C/C++ code
CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC1);
    ASSERT(pStatic);
    CRect rc;
    pStatic->GetWindowRect(&rc);
    ScreenToClient(&rc);
    InvalidateRect(&rc);……


++
------解决方案--------------------
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
if(IDC_STATIC1 == pWnd->GetDlgCtrlID())
{
pDC->SetTextColor(RGB(255, 0, 128));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}

// TODO: Return a different brush if the default is not desired
return hbr;
}

void CXXXDlg::OnOK() 
{
// TODO: Add extra validation here

CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC1);
    ASSERT(pStatic);
    CRect rc;
    pStatic->GetWindowRect(&rc);