• ベストアンサー

CxxxViewのインスタンスはいつ作られるの?

環境はWIN98 VC++6.0 MFCです。 今まで何も考えずウィザードに任せて、CxxxView内にコードを書いていましたが、良く考えるとCxxxViewってクラスですよね。 そうするとどこかでインスタンスが生成されていると思うのですが、どれはどこなのでしょうか?

  • mk1234
  • お礼率94% (1832/1940)

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

  • ベストアンサー
noname#5537
noname#5537
回答No.1

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_creating_new_documents.2c_.windows.2c_.and_views.asp ここのフローチャートがわかりやすいと思います。 通常, CFrameWnd::OnCreateClient から, CFrameWnd::CreateView が呼ばれ, その中でビューのインスタンスが生成されます。 MFC のソースは VC に添付されているので,時間があったら覗いてみてください。

mk1234
質問者

お礼

回答ありがとうございます。 BOOL CXxxApp::InitInstance()内で生成されていたのですね。

関連するQ&A

  • CFormViewでの印刷について

    環境はWIN98 VC++6.0 MFCです。 基本クラスをCViewにした場合は下記コードにて、印刷プレビューで画像が見れたのですが、基本クラスをCFormViewにしたら見れません。 どうすれば良いのでしょうか? void CxxxView::OnDraw(CDC* pDC) { if (pDC->IsPrinting()) { 下記URLのコード } else{ } 画像表示用コード http://www.codeguru.com/forum/showthread.php?threadid=234177

  • インスタンス生成について

    いつもお世話になっております。 今回はインスタンス生成について質問させて下さい。 String クラスのインスタンス生成は、 String str1 = new String(); のように明示的に new 演算子を用いる方法と、 String str2 = "hoge"; のように生成する方法がありますよね。 str2 の方は、JVM が(?) 勝手にコンストラクタを呼び出してくれて、 インスタンスを生成してくれる、という認識でよいのでしょうか? また、明示的に「 new 演算子 + コンストラクタ」でインスタンスを生成する場合と、 そうでない場合の使い分けなどはあるのでしょうか? そもそも String 以外に、このような複数のパターンでインスタンスを生成することができる クラスは他にもあるのでしょうか? 以上、ご教授宜しくお願い致します。

    • ベストアンサー
    • Java
  • クラスのインスタンス名をクラス内で取得できますか?

    クラスのインスタンス名をクラス内で取得できますか? 今VC++6.0を使っています。例として下記のクラスのコンストラクタで CTest::CTest() { TRACE("%s",typeid(this).name()); } としておいて、 別なクラスで CTest testInst; を生成すると デバッグエリアに 「class CTest *」 と表示することはできました。 これが出来るのなら、インスタンス名 testInst をCTestクラスの内部から 取得することは出来ないのかと思ったのですが、 取得することは可能なのでしょうか?

  • マルチスレッド間でデータ交換をする方法

    マルチスレッドの知識がないままに、プログラミングをする必要が出てしまったのですが、書籍などで調べても分からない部分があるため、質問いたします。 Win32APIを用いて(MFCは使用しない)、WindowsでVC7.0環境です。 やりたいことは、 スレッドAとスレッドBを生成し、 スレッドAの終了時点で、スレッドBがスレッドA内部で生成したクラスのインスタンスを取得するというものです。(もしくはその逆) スレッドAとB自体もクラスで構成しており、内部で生成されるインスタンスはグローバルではないため、スレッドBからスレッドAを見えるような仕組みが必要なのでしょうか?? まだイメージだけの段階で、ソースコードで表現できなくて申し訳ないのですが、簡単にご教授くださる方、もしくは参考になるサイトを教えてくださる方がいらっしゃいましたら、お願いいたします!

  • 動的に生成されるインスタンス間のやりとりについて

    あるクラスのインスタンスが動的に複数生成される状態で,一つのインスタンスから, 複数の他インスタンスのメンバ関数(仮に関数A)を呼びたいと考えています. そこでstaticなインスタンスのリストのようなものを設けようと考えました. 各インスタンスの関数Aへ関数ポインタの配列を定義し, それによって上記を実現しようと思いました. しかし,インスタンス生成前にインスタンス名を指定して (instance_name_.*p)(); という様に呼べるわけもなく,どう動的にインスタンスのリストを保持するかが思いつきません. 説明が下手ですいません.どなたか教えていただけますでしょうか. よろしくお願いします. 環境 Windows XP, cygwin

  • メニューを追加した時の実装を書くクラスは?

    環境 WIN98 VC++6.0 MFC にて メニューにコマンドを追加しクラスウィザードにて、コマンドの実装をするときに、CxxxMainFrmクラスとCxxxViewクラスのどちらにも実装出来ます。 どうしてどちらにも実装できるのですか? また、それぞれの使い分けはどうなっているのですか?

  • インスタンスを共有するには

    1つのインスタンスを他の複数のクラスで共有するには どうすればよいのでしょうか。 私が知っているは、生成時に共有したいインスタンスを渡す という方法です。 他にどのような方法があるのでしょうか。 ご存知の方がいましたらご教授くださいよろしくお願いいたします。

  • 起動時のウィンドウサイズについて

    環境 WIN98 VC++6.0 MFC にて プロジェクトをウィザードに従い作成しました。 ステップ6/6にて基本クラスを CViewを選んだ場合 cs.cxでウィンドウサイズを画面いっぱいに広げることが出来ます。 CFormViewを選んだ場合 cs.cxの値が小さいうちは変化がありますが、あるサイズからはウィンドウが大きくなりません。 コードはウィザードが作ったオリジナルのままで、何も触っていません。 お分かりの方お願いします

  • Runnableのインスタンス化について

    下記のコードについてです。 Runnableがインスタンス化されていますが、 どうしてそれが可能なのかが分かりません。 分からない点は 1.Runnableはインタフェースであるから、本来、直接インスタンス化は不可能であるはず。 2.しかし、Runnableはクラスライブラリjava.langパッケージに含まれている。 だからインスタンス化は可能なのかもしれない。 3.あるいは、下記のコードではメソッド内の無名クラスであるから、「new Runnable(){」の 部分でスーパークラスとしてのRunnableを継承したサブクラスを生成しているのかもしれない。 アドバイスをよろしくお願い致します。 public class Main{ public static void main(String[]args){ Runnable task = new Runnable(){ public void run(){ System.out.println("run"); } }; Thread thread = new Thread(task){ public synchronized void start(){ System.out.println("start"); } }; thread.start(); } }

    • ベストアンサー
    • Java
  • インスタンスとオブジェクト 生成

    クラスのオブジェクトを生成するときに(newをつかって) ●インスタンスを生成する。 ●オブジェクトを生成する。 と参考書に書いてありますが、言い方はどちらでもいいそうです。 でも、2種類の言い方がるということは厳密には意味が違うような気がするのですが、皆さんはどう思いますか? またどちらの言い方を使っていますか? どちらが正しいのでしょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう