PropertyPage Funktion aufrufen

Hi,

ich suche eine Möglichkeit, aus einer PropertyPage eine Funktion einer anderen PropertyPage aufrufen zu können.

Kurz zu meinem Programm:
Es besteht aus 3 Pages, auf der Ersten soll ein Fahrzeug ausgewählt werden, auf der Zweiten ein Kunde. Wenn man ein Fahrzeug bzw. Kunden auswählt, soll die ID automatisch auf der dritten Page angezeigt werden.
Ich habe in der dritten Page eine Methode geschrieben, der die ID übergeben wird und sie einträgt.
Mein Problem ist, dass ich nicht weis wie diese Methode von der ersten bzw. zweiten Page aufgerufen werden kann.


MfG
 
Von übergeordneten CpropertySheet kannst Du einen Zeiger auf die entsprechende Page holen. Über diesen Zeige kannst Du Dir von anderen Pages aus die ID holen.
 
aha, und wie hat das dann ungefähr auszusehen? bin mit Zeigern leider nicht so fit :(

Ich habe in den Klassen der ersten beiden Pages eine Methode, in die der Aufruf der Funktion der dritten Page rein soll:

Code:
void CFahrzeug::anzeigen(void)
{
    //Daten aus MySQL-Recordset holen
    pr_f->GetFieldValue("ID",m_id);
    pr_f->GetFieldValue("Ausfuehrung",m_aid);
    pr_f->GetFieldValue("Farbe",m_fid);
    pr_f->GetFieldValue("Preis",m_preis);
    pr_f->GetFieldValue("Marke",m_marke);
    pr_f->GetFieldValue("Modell",m_modell);
    pr_f->GetFieldValue("Leistung",m_leistung);

    UpdateData(FALSE);
}
oder muss das in die Initialisierung des PropertySheets?
Code:
BOOL CmysqlautohausDlg::OnInitDialog()
{
    [...]

    verbindung();            //MySQL Verbindung

    CFahrzeug f;
    CKunden k;
    CEintragen e;
    CPropertySheet p("Autohaus");

    p.AddPage(&f);
    p.AddPage(&k);
    p.AddPage(&e);

    p.DoModal();
    exit(0);
    
    [...]
}
 
Du willst doch die ID's von Kunde und Fahrzeug aus den ersten beiden Pages in der dritten Page anzeigen, oder?

Dann erstellst Du eine WM_SHOWWINDOW-Behandlungsroutine:
Code:
class CEintragen
{
...
afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
...
}

void CEintragen::OnShowWindow(BOOL bShow, UINT nStatus)
{
  if(bShow)
  {
    SetKundenID();
    SetFahrzeugID();
  }
}

void CEintragen::SetKundenID()
{
  CKunden *pKunden = (CKunden*) ((CPropertySheet*)GetParent())->GetPage(1);
  m_editKundenID.SetWindowText(pKunden->GetKundenID());
}
Mit der FahrzeugID genauso wie mit der KundenID.

Wenn es allerdings so ist, daß Du mit den ersten beiden Pages schon Datensätze (Kundendatensatz, Fahrzeugdatensatz) auswählst, dann wäre es wahrscheinlich einfacher, sich die Daten aus den aktuellen Datensätzen zu holen.
 
Zurück