0

メインフレームからスプリッタ内のビューにアクセスしようとしています。現時点で私はこれを持っています:

CWnd* pView = m_wndSplitter.GetPane( 0, 0 );

ただし、これにより、CMyViewClass オブジェクトではなく CWnd へのポインターが取得されます。

pView->ViewFunction(...); の形式でメンバー関数にアクセスできるように、ビューオブジェクト自体にアクセスするために何をする必要があるかを誰かに説明してもらえますか?

4

1 に答える 1

3

キャストするだけです:

// using MFC's dynamic cast macro
CMyViewClass* pMyView = 
   DYNAMIC_DOWNCAST(CMyViewClass, m_wndSplitter.GetPane(0,0));
if ( NULL != pMyView )
   // whatever you want to do with it...

また:

// standard C++ 
CMyViewClass* pMyView = 
   dynamic_cast<CMyViewClass*>(m_wndSplitter.GetPane(0,0));
if ( NULL != pMyView )
   // whatever you want to do with it...

ペインのビューが常にタイプであることがわかっている場合は、...を使用することもできますが、使用しないことをお勧めします。レイアウトを変更しても、問題が発生するリスクはありません。0,0CMyViewClassstatic_cast

于 2008-11-06T18:09:39.150 に答える