Platform SDK: DirectX

サーフェスに対するデバイス コンテキストの取得

[C++]

GDI 関数により DirectDraw サーフェス オブジェクトのコンテンツを変更する場合、GDI 互換のデバイス コンテキスト ハンドルを取得しなくてはならない。これは、DrawText Win32 関数を呼び出して DirectDraw サーフェスのテキストを表示する場合に役立つ。この関数は、パラメータとしてデバイス コンテキストに対するハンドルを受け取る。サーフェスに対する IDirectDrawSurface7::GetDC メソッドを呼び出すことで、そのサーフェスに対する GDI 互換のデバイス コンテキストを取得できる。次の例でこの方法を示す。

// この例では、lpDDS4 変数が IDirectDrawSurface7
// インターフェイスに対する有効なポインタとなる。
 
  HDC     hdc;
  HRESULT HR;
 
  hr = lpDDS7->GetDC(&hdc);
  if(FAILED(hr))
      return hr;
 
// ここで、DrawText やいくつかの他の GDI 関数を
// 呼び出す。
 
  lpDDS7->ReleaseDC(hdc);

サーフェスのデバイス コンテキストが必要なくなったときに、IDirectDrawSurface7::ReleaseDC メソッドを呼び出していることに注意する。IDirectDrawSurface7::GetDC メソッドでは、サーフェスをロックするために IDirectDrawSurface7::Lock メソッドの内部バージョンが必要となるので、このステップが要求される。IDirectDrawSurface7::ReleaseDC メソッドが呼び出されるまで、そのサーフェスはロックされたままである。

[Visual Basic]

GDI 関数により DirectDraw サーフェス オブジェクトのコンテンツを変更する場合、GDI 互換のデバイス コンテキスト ハンドルを取得しなくてはならない。サーフェスに対する DirectDrawSurface7.GetDC メソッドを呼び出すことで、そのサーフェスに対する GDI 互換のデバイス コンテキストを取得できる。

サーフェスのデバイス コンテキストが必要なくなったときに、DirectDrawSurface7.ReleaseDC メソッドを呼び出していることに注意する。DirectDrawSurface7.GetDC メソッドでは、サーフェスをロックするために DirectDrawSurface7.Lock メソッドの内部バージョンが必要となるので、このステップが要求される。DirectDrawSurface7.ReleaseDC メソッドが呼び出されるまで、そのサーフェスはロックされたままである。