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 を使用しても同様です
解決方法を御願いします
コンパイルエラーの原因はクラス(a)のメンバ変数である
StrをCDocumentクラスのメンバ変数として呼び出そうと
しているからです。
つまりクラス(c)のOnDrawの以下のpDoc部分を
void CXXXView2::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: この位置に描画用のコードを追加してください
}
XXXCDoc* pDoc = (XXXCDoc*)GetDocument();
と変更することにより解決すると思います。
あ! そうか
どうも有難うございます