一つのDocと複数のView – プログラミング – Home

通知
すべてクリア

[解決済] 一つのDocと複数のView


たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

VC++6.0 MFC Windows98
VC++6.0 を勉強中の会社員です

作成したい内容
  SDIで処理内容別にViewのクラスを
  作成し、処理内容の結果をWindow(一つの)に表示したいです

現在の分からないこと
  通常MFC(SDI)で作成すると
  XXXCDoc クラス ---->(a)
  XXXCView   クラス ----(b)
  がそれぞれ作成され
  CDocument クラス(a)内の変数(Str)をCView(b)でWindowに表示される場合
  pDC->TextOut(10,10,pDoc->Str);等で表示しますが
  Viewクラスをもうひとつ作成
  XXXView2(基本クラスをCView)--->(c)
  を作成した場合、このクラスで
  pDC->TextOut(10,10,pDoc->Str);
  としても
  error C2039: 'Str' : 'CDocument' のメンバではありません
  とのエラーが発生します
friend を使用しても同様です

解決方法を御願いします


引用未解決
トピックタグ
tom
 tom
(@tom)
ゲスト
結合: 23年前
投稿: 16
 

コンパイルエラーの原因はクラス(a)のメンバ変数である
StrをCDocumentクラスのメンバ変数として呼び出そうと
しているからです。

つまりクラス(c)のOnDrawの以下のpDoc部分を
void CXXXView2::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: この位置に描画用のコードを追加してください
}

XXXCDoc* pDoc = (XXXCDoc*)GetDocument();

と変更することにより解決すると思います。


返信引用
たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

あ! そうか
どうも有難うございます


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました