
MFC の SDI でアプリケーション開発をしています。
当方 “Hello, world!” を学び始めて数ヶ月のビギナーです。
ドキュメント・ビュー構造では
ビュークラスからは GetDocument() 関数を使って,
ドキュメントクラスの public な領域を操作することができます。
ここで質問です。
自分の作った,独自のクラスから,ドキュメントクラスを取得する
には,どうしたらいいのでしょうか?
GetDocument() 関数はビュークラスにしか(?)備わっていないようで,困っています。
ドキュメントクラスの ID でも分かれば GetDlgItem() が使えるかもしれない(?)などと思ったのですが。
初心者につき,変な質問をしているかもしれませんが,ご教授いただけると幸いです。
No.3ベストアンサー
- 回答日時:
一応、AfxGetAppでCWinApp*を持って来て、
GetFirstDocTemplatePosition/GetNextDocTemplateからCDocTemplate*を取得、
CDocTemplateからGetFirstDocPosition/GetNextDocでドキュメントまで到達しますが、
(列挙/検索が入るので)毎回特定のドキュメントが欲しいだけなら向いてません。
# SDIで事実上必ず最初のCDocTemplateとCDocumentが使えるならまだしも…。
独自クラスの役割にもよりますが、CDocumentへの参照をメンバに持つのがよさそうに思います。
もしくは、もしも独自のViewを作ってるなら継承するがよいと思いますけど、
そもそもドキュメントクラスを参照する必要自体が本当にあるのか…
用途に疑念が残ります。
ご回答くださり,ありがとうございます。
> そもそもドキュメントクラスを参照する必要自体が本当にあるのか…
大変,重要な盲点でした。
指摘くださり,ありがとうございます。
クラスの設計について考え直す必要がある,という結論で納得しました。
せっかくドキュメント・ビュー構造を使っているので,熟考しなおそうと思います。
あくまでも直感ではありますが,より良いデザインが思い浮かびそうです。
No.2
- 回答日時:
独自のクラスでviewクラスを継承してしまえばよいのではないでしょうか?
ご回答くださり,ありがとうございます。
> 独自のクラスでviewクラスを継承
少し自分には技術的な経験が不足しているようです。
もう少し勉強して,分かることが多くなったときの参考とさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ダイアログ表示時にチェックボックスにチェックされている状態にするには?
C言語・C++・C#
-
読み込み中にアクセス違反が発生しました、と出ます。これを回避することは
C言語・C++・C#
-
MFCでハンドルを取得するには
C言語・C++・C#
-
-
4
複数のビュー表示について
C言語・C++・C#
-
5
VC++におけるCStringの変換
C言語・C++・C#
-
6
CWnd::EnableWindow()の扱い方
C言語・C++・C#
-
7
MFCでのスクロールバーの扱い
C言語・C++・C#
-
8
エディットボックスの入力制限について
C言語・C++・C#
-
9
MFCプログラミング
C言語・C++・C#
-
10
静的でないメンバ関数の呼び出しが正しくありません
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中学のクラス数
-
河合塾
-
進学校通ってたんですけど、眼...
-
河合塾のクラス分けについて
-
ヒグマを撃退
-
エクセルVBAでのwitheventsにつ...
-
ネスカフェ エクセラ と UCCク...
-
サーブレットを始めようとした...
-
意味の違いを教えてください Sh...
-
「タイプ初期化子が例外をスロ...
-
0歳児の指しゃぶりに関して
-
インスタンス参照でアクセスで...
-
VBスクリプトでテキストファイ...
-
javascriptからjavaを呼び出したい
-
エクセルVBAで、条件に一致する...
-
canvasで表示されてる画像を1...
-
多人数のじゃんけんプログラム
-
C# 「データが失なわれる可能性...
-
Javaプログラムからポップアッ...
-
オブジェクト参照がオブジェク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヒグマを撃退
-
中学のクラス数
-
そんなにお金がなくても年に1度...
-
UMLのクラス図はmain()も含むん...
-
どこからも呼ばれていない無意...
-
java eclipse 型に解決できません
-
配列の重複する値とその個数を...
-
EclipseでJSPのコンパイルエラー
-
僕の出身中学校は200人同級生が...
-
コンボボックスのマウスホイー...
-
main()を持つクラスが2つ以上...
-
Cstring(日本語含む)をcharに...
-
同一パッケージにあるクラスが...
-
IPアドレスのクラスAを取得して...
-
dllと同じプロジェクトにする方法
-
標準モジュールとクラスモジュ...
-
VBAもしくはVB6:クラスの中で...
-
Sub-LVDS規格とは
-
同じクラスにならない確率を教...
-
複数のクラスで共通した関数を...
おすすめ情報