</pre><pre name="code" class="cpp">
void CTransstaDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rect;
GetDlgItem(IDC_STA)->GetWindowRect(&rect);
ScreenToClient(&rect);
InvalidateRect(&rect);
// Invalidate();
CString str;
str.Format("%d", point.x);
m_static.SetWindowText(str);
CDialog::OnLButtonDown(nFlags, point);
}
解释:
screenToClient(&rect); 必须有,上一句得到是ID=IDC_STA的矩形区域,要把矩形区域变换到客户区上。
InvalidateRect(&rect); 这句是是矩形区域失效重画,而Invalidate是使整个窗口失效重画,后者回事整个窗口闪烁。