GDI

GDI(Graphics Device Interface)はグラフィックスの作業のためにインタフェースである。 それはモニター、プリンタ、ファイルといったグラフィックスを表現するための装置とプログラマーとの仲立ちをする。GDIのお陰でプログラマーはそれらの装置の詳細について知らなくても モニターやプリンタにグラフィックスを表現できる。

プログラミングの視点からみると、このGDIはグラフィックスの作業で使う一群のクラスやそれらが提供するメソッドである。

GDIは二次元ヴェクターグラフィックス(線、長方形といった二次元幾何学図形の描画)、フォント、そして画像からなる。

GDI
GDIの構成要素

グラフィックスの作業を始める前に、まず装置媒体(device context=DC)を生成しなければならない。wxPythonではその一般形はwx.DCと呼ばれている。ドキュメントによればwx.DCはその上にグラフィックスが描かれる装置媒体と定義されている。それは様々な装置を 一般形で表現したものである。これにより異なった装置に対して同一のプログラムコードを書くことができるようになる。それは画面であり、またはプリンタである。wx.DCはプログラマーがそれを直接使うようには意図されてはいない。プログラマーは特定の装置に対応したwx.DCから派生したクラスを選択することになる。各派生クラスは特定の条件で使うよに意図されている。

wx.DC派生クラス

wx.ScreenDCは画面上の任意の場所への描画のために使われる。wx.WindowDCはWindow画面全体の描画で使われる(MSWindowsのみ)。これはwindow画面の飾りの部分も含まれる。一方、wx.ClientDCは飾りの部分(タイトル部や境界)を除外したクライアントの領域のみとなる。wx.PaintDCもwx.ClientDCと同じ領域の描画で使われる。しかし、大きな違いがある。 再描画(ウインドウの生成時、アイコン化から復帰など)のタイミングで発生するwx.PaintEventイヴェントの処理では、この処理に最適化されたwx.PaintDCを使って描画をする必要がある。