デバイスコンテキストのハンドルの取得
OpenGLの初期化などで、たまーに必要なときがあるデバイスコンテキストのハンドルの取得方法。
例えば、フォーム上に配置したパネルにOpenGLで描画するとして、
初期化のためにデバイスコンテキストのハンドルがほしい、とする。
Panel panel1 = new Panel();
と宣言されているとすると・・・
<方法その1: user32.dl lの GetDC 関数を使う>
[DllImport( "user32", SetLastError = true ), System.Security.SuppressUnmanagedCodeSecurity]
public static extern IntPtr GetDC( IntPtr IntPtr_HWND );
これを使ってデバイスコンテキストのハンドルを取得
IntPtr panel1_HDC = USER32.GetDC( panel1.Handle );
<方法その2: Graphics クラスの GetDC 関数を使う>
System.Drawing.Graphics g = panel1.CreateGraphics();
IntPtr panel1_HDC = g.GetHdc();
こっちの方がネイティブなdllを読み込まなくて済むからラクかも。
<back to OpenGL menu>