タブでの画面分割

このQ&Aのポイント
  • 現在、VC++6.0とOpenGLを用いてWindows SDIプログラムを作成しています。物体を前方から捉えた画面、横方向から捉えた画面、上方から捉えた画面、前方・横方・上方の3画面をのタブシート1枚に表示する画面。以上、4画面をタブコントロールを用いて切り替えて表示を行いたいと考えております。
  • 質問:4番目の"前方・横方・上方の3画面をのタブシート1枚に表示する画面"を作成する方法がわかりません。タブシート内では"CSplitterWnd"のようなものは使用できないのでしょうか?ピクチャーを複数貼り付けての実装も考えたのですが、上手くいきません。
  • どなたか、良いアドバイスがありましたらお願いできないでしょうか?よろしくお願いいたします。
回答を見る
  • ベストアンサー

タブでの画面分割

現在、VC++6.0とOpenGLを用いてWindows SDIプログラムを作成しています。 物体を前方から捉えた画面、横方向から捉えた画面、上方から捉えた画面、前方・横方・上方の3画面をのタブシート1枚に表示する画面。以上、4画面をタブコントロールを用いて切り替えて表示を行いたいと考えております。 質問:4番目の"前方・横方・上方の3画面をのタブシート1枚に表示する画面"を作成する方法がわかりません。タブシート内では"CSplitterWnd"のようなものは使用できないのでしょうか?ピクチャーを複数貼り付けての実装も考えたのですが、上手くいきません。 どなたか、良いアドバイスがありましたらお願いできないでしょうか?よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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の命令が使えません。 #スレッドが別なら大丈夫ですが。

Hiro_1977
質問者

お礼

解答ありがとうございました。 スレッドを別に用意すると、少し処理に難が出るのでglViewport()を用いて行う事にします。 後はSDIでタブコントロールにOpenGLの画面を組み込む部分が解決すれば。。と言ったところです。別に質問版を書いたので、もし方法をご存知でしたら教えていただけると幸いです。 今回の件は本当にありがとうございました。

関連するQ&A

  • タブコントロール上のピクチャーコントロールへの描画

    お世話になっております。 VC2005を使用しております。 SDIベースです。 ダイアログを作成し、その上にタブコントロール(2ページ)を作成しました。 タブコントロールの1ページ目にピクチャーコントロールを配置し、ピクチャーコントロール上に描画を行おうと思うのですが、正常に動作しません。 OnPaintの中で描画を行っているのですがだめのようです。 タブコントロール外に、ピクチャーコントロールを配置すると描画する事ができます。 どのような、タイミングで描画を行えばよいのでしょうか? 教えてください。 よろしくお願いします。

  • SDIでTabCtrlを使用

    VC++でSDIにTabCtrlを用いたアプリケーションを作成しようとしているのですが、どうも上手くいきません。 SDIWindowにタブを表示する方法はわかったのですが、タブの上にどのように表示させるものを登録すればよいのか、わかりません。CStaticを継承したクラスを作成し、OnPaint()に描画処理を入れればよいのでしょうか? ※今回はOpenGLを表示し、タブ切り替えで画面を変えたいと考えています。 もし、方法をご存知の方おられましたら教えていただけないでしょうか?

  • 画面を表示せずに印刷

    VC++6.0 SDI プロジェクト名:PrintD プログラムの実行と同時に印刷を開始するプログラムを作成したいのですが、 画面も印刷ダイアログボックスも表示することなく印刷を行うことは可能なのでしょうか? どなたかご存知の方がいらっしゃいましたらご教授下さい。 質問を載せさせていただくこと自体が初めてなので質問の仕方がオカシイ場合はご指摘下さい。 よろしくお願いします。

  • vc++のpictureboxにopenGLの画像を描画する方法につい

    vc++のpictureboxにopenGLの画像を描画する方法について。 現在、Visual C++ 2010のフォームアプリケーションで、任意のパラメータを入力したらその値に応じて物体の動きが変わるといったアプリケーションを開発しています。その動き方をopenGLでアニメーションとして可視化したいと思っています。そして、そのアニメーションをvc++のフォームアプリケーションのpictureboxに表示したいと思っているのですが、vc++とopenGLのどちらもかなりの初心者なので、pictureboxへの表示の仕方がわかりません。 以下に参考URLを貼らせていただきます。このようなものにパラメータを入力する部分を設けたものを作りたいのですが、まったく意味がわかりません。どなたかご教授お願いいたします。 http://www.t-pot.com/program/127_OpenGLNET/index.html

  • メール作成時の画面がおかしくなった

    メールの文書入力画面がおかしい。 「メール作成」をクリックすると、通常は直ぐに文書の入力画面になるはずですが、どういう訳かそうならなくなってしまいました。 症状は、「メール作成」をクリックすると、タスクバーに「メッセージ作成」と表示されるのですが、同時にタスクバーの上方に更にもう一行「メッセージ作成」と表示されます。 そして、このタスクバー上方の「メッセージ作成」をダブルクリックすることにより、初めて入力画面に切り替わります。 但し、この入力画面も、画面目一杯の大きな入力画面となっております。 だから普通は画面に隠れている「添付・重要度・署名・暗号化・オンライン」のボタン表示が、上段に有る送信ボタンと一緒の欄に表示されるようになりました。 何をやったからこうなったのか分かりません。 通常の入力画面に戻したいのだが、どうすれば直るのでしょうか。 バージョンは(Windows) Outlook Express 6です。

  • リンク先の画面

    宜しくお願い致します IE8を使用しています、画面(最初の画面は一杯に開く)のリンクをクリックすると開く画面がデスクトップ画面の半分以下位で開き 横方向がすべては見れないのでのつどマウスドラグで調整していますが デスクトップ一杯の画面で開くには如何すれば良いですか(開いた画面が一杯でなくても良いが横方向に全て見れるサイズで開きたい) そこで、画面を一杯にしておきCtrl又はShiftを押して閉じて再び開くとまた元に戻ってしまいます 「表示」「全画面表示」にすると使いにくいですし 右クリックで「新しいウインドウで開く」でも半分以下で開き、「新しいタブで開く」では上の方のタブのボタン?に入りクリックすると一杯の画面で開くが面倒です ちなみに、もう一台の方のノートパソコンはちょうど良いサイズで表示されます(画面横方向がすべて見れるサイズで表示されます)。

  • VC++でopenGLを利用したい...。

    VC++でダイアログベースのプログラムを作成したいと考えています。 そのダイアログ内のウィンドウにopenGLを表示させたいと思っているのですが、どうすればよいのかわかりません。 ご存知の方がいらっしゃいましたら、ご教授ください。 参考のになりそうなサイトでもかまいませんのでよろしくお願いします。

  • お気に入り(画面左側)が消えてしまいました。

    よろしくお願いします。 画面左側に固定していたお気に入りが急に消えてしまいました。 ALTを押して、表示→お気に入りなどで復活させようとしましたが、画面上方に横に表示されるようなんです。しかも、以前登録していたお気に入りサイトも消えてしまってて、urlなんて覚えていないし、 頻繁には見ないものの消えては困るサイトだったので、またそのサイトを探すのに時間がかかると思うと凹んでしまいます。 年齢のせいもあって、こういうトラブルにとても弱いです。 以前登録していたお気に入りサイトは復活しますか? また画面左側に縦に表示するにはどうすればいいですか? できれば超初心者にもわかるように詳しく教えていただければさいわいです。 どうぞよろしくお願いいたします。

  • VBS/HTA:画面のサイズを取得する方法

    VBSをHTAに組み込んで管理アプリを作成しています。 最大化した時に横方向に表示できるデータ個数を画面の大きさで変更したいと思っています(デスクトップorノートブック) 何とか画面のサイズが分かれば、横の長さが固定の1データを何個並べられるか割り出せるのですが・・・ どなたか、端から端までのサイズを取得する方法を教えて頂けないでしょうか。 宜しくお願いします。

  • ドラクエ風の戦闘画面の実装

    現在ドラゴンクエスト風のRPGを製作中です。 大体の部分は完成してきたのですが、 戦闘画面の実装で躓いてしまいました。 今のところ、戦闘画面の ・行動の決定 ・メッセージウィンドウ(設定した文字列が順番に表示されるだけのもの) ・ステータス画面の表示 ・敵画像の表示 部分は作成したのですが、この先の「戦闘の流れ」の部分が作れません。 自分が考えたのは キャラクターAからモンスターAへ攻撃という情報を受け取る ↓ ダメージ計算、モンスターAのHP-45 モンスターAの体力を減らす(ここで倒したかも判定) ↓ 文字列「Aの攻撃!モンスターAに45ダメージ!\m0s」を作成 (最後の"\m0s"モンスターの0番目にダメージを受けたエフェクトをさせろという意味の記号) ↓ メッセージボックスに作成した文字列をセット ↓ メッセージボックスの状態をチェックし、\m0sまでを表示していたら実際にエフェクトをかける こんな感じなのかなぁと思うのですが、これだとメッセージボックスのフラグチェックが多くなりそうだし、もっといい方法があるのでは?と思うのです 実際にドラクエ風の戦闘画面を実装したことがある方や、効果的な実装方法を知っている方が居られましたら、ご教示お願いします。