- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:タブでの画面分割)
タブでの画面分割
このQ&Aのポイント
- 現在、VC++6.0とOpenGLを用いてWindows SDIプログラムを作成しています。物体を前方から捉えた画面、横方向から捉えた画面、上方から捉えた画面、前方・横方・上方の3画面をのタブシート1枚に表示する画面。以上、4画面をタブコントロールを用いて切り替えて表示を行いたいと考えております。
- 質問:4番目の"前方・横方・上方の3画面をのタブシート1枚に表示する画面"を作成する方法がわかりません。タブシート内では"CSplitterWnd"のようなものは使用できないのでしょうか?ピクチャーを複数貼り付けての実装も考えたのですが、上手くいきません。
- どなたか、良いアドバイスがありましたらお願いできないでしょうか?よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
単に前方・横方・上方と出したいだけなら glViewportを使って glViewport(0, 0, h, w / 3); //前方描画 glViewport(0, w / 3, h, w / 3); //横方描画 glViewport(0, w * 2 / 3, h, w / 3); //上方描画 とすれば好いかと。 >ピクチャーを複数貼り付けての実装も考えたのですが、上手くいきません。 複数のウィンドウでOpenGLを使うときは、逐一 wglMakeCurrent(hDC, hRC); //OpenGLの処理 とカレントにするコンテキストを指定しないとうまく行きません。 カレントにできるコンテキストは、スレッド毎に1つなので 一つのウィンドウがコンテキストをカレントにしたままだと 他のウィンドウではOpenGLの命令が使えません。 #スレッドが別なら大丈夫ですが。
お礼
解答ありがとうございました。 スレッドを別に用意すると、少し処理に難が出るのでglViewport()を用いて行う事にします。 後はSDIでタブコントロールにOpenGLの画面を組み込む部分が解決すれば。。と言ったところです。別に質問版を書いたので、もし方法をご存知でしたら教えていただけると幸いです。 今回の件は本当にありがとうございました。