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で質問しましょう!
似たような質問が見つかりました
- Windows 10 フォルダの新規作成を必ず「ドキュメント」にする方法 1 2023/06/24 09:08
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Windows 10 OneDriveアンインストール方法 5 2022/07/19 11:12
- 学校 中2女子不登校です。中2の5月辺りからクラス替えの変化で1年の頃からのストレスによる頭痛が悪化し、体 2 2022/03/23 17:16
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- カップル・彼氏・彼女 中三 彼女とクラスが分かれてしまいました。 私には付き合って4ヶ月の彼女がいます。昨年度も違うクラス 2 2023/04/13 20:06
- 新卒・第二新卒 自己PRの作り方を教えてください。 私には人間関係構築力があると伝えたいです。 クラスでいえば、中心 3 2022/09/21 14:13
- その他(教育・科学・学問) これって研究不正にあたりますか? 2 2022/04/30 18:12
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- 学校 うちの学校では1.2.3と3つのクラスがあり数学の授業の際はAクラスとBクラスに分かれるのですがプリ 1 2022/06/23 19:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
包丁の切れ味
-
UMLのクラス図はmain()も含むん...
-
java eclipse 型に解決できません
-
新規契約でUQモバイル申し込も...
-
重複エラーを解決するには
-
複数のクラスで共通した関数を...
-
進学校通ってたんですけど、眼...
-
クラスの打ち上げって、なぜク...
-
クラスにアクセスできません。
-
配列の重複する値とその個数を...
-
IPアドレスのクラスAを取得して...
-
main()を持つクラスが2つ以上...
-
グローバルIPとプライベートIP...
-
VC++ MFCButton マウスが通過す...
-
CImageクラスをVisualC++6.0で...
-
USBデバイスのクラスID
-
どこからも呼ばれていない無意...
-
A・B・Cクラスとは?
-
エクセルVBAでのwitheventsにつ...
-
クラスのプロパティに構造体を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の重複する値とその個数を...
-
「天声人語」をインターネット...
-
java eclipse 型に解決できません
-
グローバルIPとプライベートIP...
-
ポータブル電源を買おうと思う...
-
容姿について
-
自作のクラスファイルがインポ...
-
どこからも呼ばれていない無意...
-
UMLのクラス図はmain()も含むん...
-
同一パッケージにあるクラスが...
-
main()を持つクラスが2つ以上...
-
1 つのヘッダファイルに複数の...
-
アルキメデスの大戦の櫂はなぜ2...
-
dllと同じプロジェクトにする方法
-
IPアドレスの3バイト目の呼び方
-
3年間同じクラスになる確率
-
重複エラーを解決するには
-
同じパッケージ、クラス名が含...
-
コンボボックスのマウスホイー...
-
同じクラスにならない確率を教...
おすすめ情報