Windows の invalidateRect 関数の使い方は?

Windowsでは、InvalidateRect関数を使用して、指定されたウィンドウやコントロールの領域を無効にして再描画を要求します。その関数プロトタイプは次のとおりです。

BOOL InvalidateRect(
  HWND       hWnd,            // 窗口句柄
  const RECT *lpRect,         // 指向要无效的矩形区域的指针,如果为NULL则无效整个窗口
  BOOL       bErase           // 指定是否擦除背景,TRUE为擦除,FALSE为不擦除
);

InvalidateRect関数の一般的な手順は次のとおりです。

  1. ウィンドウハンドル(hWnd)を取得する。
  2. 矩形領域の左上および右下の座標を指定してRECT構造体を作り、無効にする。ウィンドウ全体を無効にする場合は、lpRectパラメータをNULLに設定する。
  3. InvalidateRect関数に、ウィンドウハンドル、RECT構造体のポインタ、および消去フラグ(TRUEまたはFALSE)を引数として渡す。

以下のコードを参照してください。

// 获取窗口句柄
HWND hWnd = GetSafeHwnd();

// 创建一个RECT结构体,无效整个窗口
RECT rect;
GetClientRect(hWnd, &rect);

// 调用InvalidateRect函数,擦除背景
InvalidateRect(hWnd, &rect, TRUE);

以上のコードはウィンドウ全体を無効化し、再描画をリクエストし、背景を消去します。

bannerAds