回 帖 发 新 帖 刷新版面

主题:请问WM_PAINT中加一个InvalidateRect有什么作用?

请问WM_PAINT中加一个InvalidateRect有什么作用?
case   WM_PAINT :
        
                  InvalidateRect (hwnd, &rect, TRUE) ;//??????
        
        
        
                  hdc = BeginPaint (hwnd, &ps) ;
        
                  SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)) ;
        
                  SetBkMode (hdc, TRANSPARENT) ;
        
        
        
                  TextOut (hdc, 24 * cxChar, cyChar, szTop, lstrlen (szTop)) ;
        
                 TextOut (hdc, 24 * cxChar, cyChar, szUnd, lstrlen (szUnd)) ;
        
        
        
                  EndPaint (hwnd, &ps) ;
        
                 return 0 ;
        
        
        
           case   WM_DRAWITEM :
        
           case   WM_COMMAND :
        
                  ScrollWindow (hwnd, 0, -cyChar, &rect, &rect) ;
        
        
        
                  hdc = GetDC (hwnd) ;
        
                  SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)) ;
        
       
        
                  TextOut(      hdc, 24 * cxChar, cyChar * (rect.bottom / cyChar - 1),
        
                                                 szBuffer,
        
                                                 wsprintf (szBuffer, szFormat,
        
                                                        message == WM_DRAWITEM ?     TEXT ("WM_DRAWITEM") :
        
                                          TEXT ("WM_COMMAND"),
        
                                                        HIWORD (wParam), LOWORD (wParam),
        
                                                         HIWORD (lParam), LOWORD (lParam))) ;
        
        
        
                 ReleaseDC (hwnd, hdc) ;
        
                  ValidateRect (hwnd, &rect) ;
        
                  break ;

回复列表 (共2个回复)

沙发

对rect进行刷新

板凳

这个我知道,问题是它跟一般的在其他的信息下的INvalidateRect有什么区别,如果是一样不是显得多此一举了吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册