C Builder のフォーム内で OpenGL フレームをレンダリングしたいのですが、提供された OpenGL 起動コードに従うと問題が発生します。どうすればこれを解決できますか?
TForm::Handle をウィンドウ ハンドルとして使用する
解決策は、TForm::Handle をウィンドウ ハンドルとして使用することです。ウィンドウ ハンドル。
サンプル実装
これは、C Builder の古いバージョンから適応された例です:
<code class="cpp">int TForm1::ogl_init() { if (ogl_inicialized) return 1; hdc = GetDC(Form1->Handle); // Get device context PIXELFORMATDESCRIPTOR pfd; // Set pixel format for the DC ... // Create current rendering context hrc = wglCreateContext(hdc); if (hrc == NULL) { ShowMessage("Could not initialize OpenGL Rendering context !!!"); ogl_inicialized = 0; return 0; } if (!wglMakeCurrent(hdc, hrc)) { wglDeleteContext(hrc); // Destroy rendering context ogl_inicialized = 0; return 0; } // ... ogl_inicialized = 1; return 1; }</code>
追加メモ
以上がTForm::Handle を使用して C Builder フォームで OpenGL フレームをレンダリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。