PropertySheetの関数の呼び出し

[戻る]
cooper 2008/12/26(金) 21:04:53
[開発環境]=VisualStudio2005
アプリケーションに
FunctionFormView.cpp
Function_A.cppがあります。

//FunctionFormView.h内
private:
    CPropertySheet m_Sheet;
    CFunction_A m_page_A;
    CFunction_B m_page_B;

//FunctionFormView.cpp内
//2つのタブを設定
void CFunctionFormView::OnInitialUpdate(){
    if( m_Sheet.GetPageCount() == 0 ) {
    m_Sheet.AddPage(&m_page_A);
    m_Sheet.AddPage(&m_page_B);
    m_Sheet.Create(this, WS_CHILD | WS_VISIBLE, NULL);
    }
}
bool CFunctionFormView::set_Edit_onView()
{
//m_page_Aが最前面で、m_page_A上のエディットボックスの値を設定する。
    int x = 10;
    int y = 10;

    CTabCtrl* pTab = m_Sheet.GetTabControl();
    if( pTab != NULL ) {
    (1)CPropertyPage *pActive = m_Sheet.GetActivePage();
    (2)CFunction_A *pfm = (CFunction_A*)pActive->GetActiveWindow();
    (3)pfm->set_Edit(x,y);
    }
    return false;
}
//Function_A.cpp内
//エディットボックス(IDC_EDIT)と変数m_Edit
//関数set_Editはpublic
bool CFunction_A::set_Edit(int x, int y)
{
   m_Edit.Format(_T("%d , %d"), x , y );
   SetDlgItemText(IDC_EDIT,m_Edit);
   CFunction_M::UpdateData(false);
   return false;
}

m_page_Aがアクティブになっているときに、set_Edit_onView()から
set_Edit(x,y)を呼び出すと、
m_Edit.Format(_T("%d , %d"), x , y );
で落ちてしまいます。(1)(2)(3)の部分の書き方はどうすればよいのでしょうか?

wclrp ( 'o') 2008/12/27(土) 10:49:28
CFunctionってCPropertyPageじゃないのか。
m_page_A直じゃ駄目なのか。

cooper 2009/01/05(月) 20:24:22
[[解決]]
(1),(2),(3)部分は単に
m_page_A.set_Edit(x,y);
で呼ぶことができました。
ありがとうございました。

古いスレッドには追加発言できません。