Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: MFC (Visual C++) ::  Checkbox Abhacken  
Gehen Sie zu Seite Zurück  1, 2
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
abhacker
Unregistrierter




Beitrag abhacker Unregistrierter 20:09:35 10.03.2010   Titel:              Zitieren

Yeah, hack it ab!
Power21
Unregistrierter




Beitrag Power21 Unregistrierter 15:22:27 11.03.2010   Titel:              Zitieren

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CMyPropertySheet propSheet;
    propSheet.DocPt2(m_pDoc1);
    //+-----------------------------------------------------------------------------+
    //! Test Anfang                                                                    !
    //+-----------------------------------------------------------------------------+

    BOOL bWert;
//    propSheet.m_Page3.m_bDatum=FALSE;
//dlg.m_bDatum=WERT; //mit deinem gemerkten Wert die Variable initialisieren

    if(propSheet.DoModal()==IDOK)
    {
       bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
    }
    //+-----------------------------------------------------------------------------+
    //! Test Ende                                                                    !
    //+-----------------------------------------------------------------------------+
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1);
//+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+

BOOL bWert;
// propSheet.m_Page3.m_bDatum=FALSE;
//dlg.m_bDatum=WERT; //mit deinem gemerkten Wert die Variable initialisieren

if(propSheet.DoModal()==IDOK)
{
bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CMyPropertySheet propSheet;
    propSheet.DocPt2(m_pDoc1);
    //+-----------------------------------------------------------------------------+
    //! Test Anfang                                                                    !
    //+-----------------------------------------------------------------------------+

    BOOL bWert;
//    propSheet.m_Page3.m_bDatum=FALSE;
//dlg.m_bDatum=WERT; //mit deinem gemerkten Wert die Variable initialisieren

    if(propSheet.DoModal()==IDOK)
    {
       bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
    }
    //+-----------------------------------------------------------------------------+
    //! Test Ende                                                                    !
    //+-----------------------------------------------------------------------------+


Hallo nochmal ,
ich habe mein Code so geändert aber es funktioniert immer noch nicht.
Ich tue Checkbox abhacken und auf OK button drücken , und wenn ich mein Dialog nochmal öffne, dann sehe ich dass Checkbox nixht abgehackt ist..

Woran kann das liegen , muss ich noch was ändern??

Vielen Dank
CTecS
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.09.2008
Beiträge: 821
Beitrag CTecS Mitglied 15:41:26 11.03.2010   Titel:              Zitieren

weil bWert ein Member deiner dialog-Klasse sein muß, sonnst ist doch der Wert verlohren wenn die Funktion beendet ist. Diesen Wert mußt du natürlich auch wieder in deiner Page setzen vor aufruf von DoModal.
Power21
Unregistrierter




Beitrag Power21 Unregistrierter 16:02:50 11.03.2010   Titel:              Zitieren

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
CMyPropertySheet propSheet;
    propSheet.DocPt2(m_pDoc1);    //+-----------------------------------------------------------------------------+
    //! Test Anfang                                                                    !
    //+-----------------------------------------------------------------------------+

    propSheet.m_Page3.bWert=FALSE;
       
    if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
    {
        propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
    }
    //+-----------------------------------------------------------------------------+
    //! Test Ende                                                                    !
    //+-----------------------------------------------------------------------------+
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1); //+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+

propSheet.m_Page3.bWert=FALSE;

if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
{
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
CMyPropertySheet propSheet;
    propSheet.DocPt2(m_pDoc1);    //+-----------------------------------------------------------------------------+
    //! Test Anfang                                                                    !
    //+-----------------------------------------------------------------------------+

    propSheet.m_Page3.bWert=FALSE;
       
    if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
    {
        propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
    }
    //+-----------------------------------------------------------------------------+
    //! Test Ende                                                                    !
    //+-----------------------------------------------------------------------------+


ich habe mein Code so wie oben geändert aber es funktioniert einfach nicht.




bWert ist jetzt member Variable meines Pages/bzw.Dialog Klasse siehe unten.
C/C++ Code:
   propSheet.m_Page3.bWert
C/C++ Code:
propSheet.m_Page3.bWert
C/C++ Code:
   propSheet.m_Page3.bWert




Was muss noch geändert werden..?
Unten kann man mein Page/dialog Klasse funktionen sehen , soll ich da etwas ändern???

Vielen Dank
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Eigenschaftenseite CMyPropertyPage3

IMPLEMENT_DYNCREATE(CMyPropertyPage3, CPropertyPage)

CMyPropertyPage3::CMyPropertyPage3() : CPropertyPage(CMyPropertyPage3::IDD)
{
    //{{AFX_DATA_INIT(CMyPropertyPage3)
    m_bDatum = FALSE;//
    //}}AFX_DATA_INIT

    m_pDoc    = NULL;
}

CMyPropertyPage3::~CMyPropertyPage3()
{
}

void CMyPropertyPage3::DoDataExchange(CDataExchange* pDX)
{
    CPropertyPage::DoDataExchange(pDX);

    //{{AFX_DATA_MAP(CMyPropertyPage3)
    DDX_Check(pDX, IDC_DATUM, m_bDatum);
    //}}AFX_DATA_MAP
   
   
}


BEGIN_MESSAGE_MAP(CMyPropertyPage3, CPropertyPage)
    //{{AFX_MSG_MAP(CMyPropertyPage3)

    //}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen für Nachrichten CMyPropertyPage3


BOOL CMyPropertyPage3::OnInitDialog()
{
    // Um die Check box initialisieren zu können
    // Was muss hier gemacht werden..!


    Init();
    if (m_pDoc == NULL)
        return FALSE;


    CPropertyPage::OnInitDialog();

    CWnd* pWnd    = GetDlgItem(IDOK);

    if (pWnd)

    pWnd->ShowWindow(SW_HIDE);
    pWnd    = GetDlgItem(IDCANCEL);
    if (pWnd)
        pWnd->ShowWindow(SW_HIDE);

    return TRUE;
}

void CMyPropertyPage3::    Init()
{
        CFrameWnd* pWnd    = (CFrameWnd*)AfxGetMainWnd();
    if (pWnd == NULL)
        return;
    m_pDoc    = (CDenemeStatistikDoc*)pWnd->GetActiveDocument();

}

void CMyPropertyPage3::OnOK()
{
    // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
   
    CPropertyPage::OnOK();
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Eigenschaftenseite CMyPropertyPage3

IMPLEMENT_DYNCREATE(CMyPropertyPage3, CPropertyPage)

CMyPropertyPage3::CMyPropertyPage3() : CPropertyPage(CMyPropertyPage3::IDD)
{
//{{AFX_DATA_INIT(CMyPropertyPage3)
m_bDatum = FALSE;//
//}}AFX_DATA_INIT

m_pDoc = NULL;
}

CMyPropertyPage3::~CMyPropertyPage3()
{
}

void CMyPropertyPage3::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CMyPropertyPage3)
DDX_Check(pDX, IDC_DATUM, m_bDatum);
//}}AFX_DATA_MAP


}


BEGIN_MESSAGE_MAP(CMyPropertyPage3, CPropertyPage)
//{{AFX_MSG_MAP(CMyPropertyPage3)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen für Nachrichten CMyPropertyPage3


BOOL CMyPropertyPage3::OnInitDialog()
{
// Um die Check box initialisieren zu können
// Was muss hier gemacht werden..!


Init();
if (m_pDoc == NULL)
return FALSE;


CPropertyPage::OnInitDialog();

CWnd* pWnd = GetDlgItem(IDOK);

if (pWnd)

pWnd->ShowWindow(SW_HIDE);
pWnd = GetDlgItem(IDCANCEL);
if (pWnd)
pWnd->ShowWindow(SW_HIDE);

return TRUE;
}

void CMyPropertyPage3:: Init()
{
CFrameWnd* pWnd = (CFrameWnd*)AfxGetMainWnd();
if (pWnd == NULL)
return;
m_pDoc = (CDenemeStatistikDoc*)pWnd->GetActiveDocument();

}

void CMyPropertyPage3::OnOK()
{
// TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen

CPropertyPage::OnOK();
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Eigenschaftenseite CMyPropertyPage3

IMPLEMENT_DYNCREATE(CMyPropertyPage3, CPropertyPage)

CMyPropertyPage3::CMyPropertyPage3() : CPropertyPage(CMyPropertyPage3::IDD)
{
    //{{AFX_DATA_INIT(CMyPropertyPage3)
    m_bDatum = FALSE;//
    //}}AFX_DATA_INIT

    m_pDoc    = NULL;
}

CMyPropertyPage3::~CMyPropertyPage3()
{
}

void CMyPropertyPage3::DoDataExchange(CDataExchange* pDX)
{
    CPropertyPage::DoDataExchange(pDX);

    //{{AFX_DATA_MAP(CMyPropertyPage3)
    DDX_Check(pDX, IDC_DATUM, m_bDatum);
    //}}AFX_DATA_MAP
   
   
}


BEGIN_MESSAGE_MAP(CMyPropertyPage3, CPropertyPage)
    //{{AFX_MSG_MAP(CMyPropertyPage3)

    //}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen für Nachrichten CMyPropertyPage3


BOOL CMyPropertyPage3::OnInitDialog()
{
    // Um die Check box initialisieren zu können
    // Was muss hier gemacht werden..!


    Init();
    if (m_pDoc == NULL)
        return FALSE;


    CPropertyPage::OnInitDialog();

    CWnd* pWnd    = GetDlgItem(IDOK);

    if (pWnd)

    pWnd->ShowWindow(SW_HIDE);
    pWnd    = GetDlgItem(IDCANCEL);
    if (pWnd)
        pWnd->ShowWindow(SW_HIDE);

    return TRUE;
}

void CMyPropertyPage3::    Init()
{
        CFrameWnd* pWnd    = (CFrameWnd*)AfxGetMainWnd();
    if (pWnd == NULL)
        return;
    m_pDoc    = (CDenemeStatistikDoc*)pWnd->GetActiveDocument();

}

void CMyPropertyPage3::OnOK()
{
    // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
   
    CPropertyPage::OnOK();
}
CTecS
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.09.2008
Beiträge: 821
Beitrag CTecS Mitglied 16:50:20 11.03.2010   Titel:              Zitieren

Du verstehst den Sinn nicht wenn du schreibst

C/C++ Code:
propSheet.m_Page3.bWert=FALSE;
C/C++ Code:
propSheet.m_Page3.bWert=FALSE;
C/C++ Code:
propSheet.m_Page3.bWert=FALSE;

und dann DoModal aufrufst, was glaubst du wie der Wert von bWert bei jeden aufruf ist? Immer FALSE weil du das ja genau so setzt. Leg doch die ganzen Variablen die du dir Merken willst in M-Doc also deiner Documentenklasse an und lies diese werte bei OnIni in deine Variablen ein und bei OnOK() wieder in dein Document zurück.

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
BOOL CMyPropertyPage3::OnInitDialog()
{
    // Um die Check box initialisieren zu können
    // Was muss hier gemacht werden..!


    Init();
    if (m_pDoc == NULL)
        return FALSE;

    CPropertyPage::OnInitDialog();

    bWert = m_pDoc->bWert; //Variablen einlesen

    CWnd* pWnd    = GetDlgItem(IDOK);

    if (pWnd)

    pWnd->ShowWindow(SW_HIDE);
    pWnd    = GetDlgItem(IDCANCEL);
    if (pWnd)
        pWnd->ShowWindow(SW_HIDE);

    return TRUE;
}
void CMyPropertyPage3::OnOK()
{
    m_pDoc->bWert = bWert;//Wert in Document sichern
   
    CPropertyPage::OnOK();
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
BOOL CMyPropertyPage3::OnInitDialog()
{
// Um die Check box initialisieren zu können
// Was muss hier gemacht werden..!


Init();
if (m_pDoc == NULL)
return FALSE;

CPropertyPage::OnInitDialog();

bWert = m_pDoc->bWert; //Variablen einlesen

CWnd* pWnd = GetDlgItem(IDOK);

if (pWnd)

pWnd->ShowWindow(SW_HIDE);
pWnd = GetDlgItem(IDCANCEL);
if (pWnd)
pWnd->ShowWindow(SW_HIDE);

return TRUE;
}
void CMyPropertyPage3::OnOK()
{
m_pDoc->bWert = bWert;//Wert in Document sichern

CPropertyPage::OnOK();
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
BOOL CMyPropertyPage3::OnInitDialog()
{
    // Um die Check box initialisieren zu können
    // Was muss hier gemacht werden..!


    Init();
    if (m_pDoc == NULL)
        return FALSE;

    CPropertyPage::OnInitDialog();

    bWert = m_pDoc->bWert; //Variablen einlesen

    CWnd* pWnd    = GetDlgItem(IDOK);

    if (pWnd)

    pWnd->ShowWindow(SW_HIDE);
    pWnd    = GetDlgItem(IDCANCEL);
    if (pWnd)
        pWnd->ShowWindow(SW_HIDE);

    return TRUE;
}
void CMyPropertyPage3::OnOK()
{
    m_pDoc->bWert = bWert;//Wert in Document sichern
   
    CPropertyPage::OnOK();
}


genau so kannst du dir das auch machen wenn du das nicht in der Page machen willst sondern wie vorher beschrieben, du mußt dir halt nur eine Stelle suchen wo du die ganzen werte dir merkst, wenn das recht viel ist verpack ich das dann meist in eine eigene klasse (CSetup) die dann das Sichern und Laden der Werte aus irgendeinen File oder Registry oder was weis ich übernimmt. So is das dann alles gekapselt und man muß nicht endlos suchen.
Power21
Unregistrierter




Beitrag Power21 Unregistrierter 17:12:19 11.03.2010   Titel:              Zitieren

Das ist die Erste schritt unten sieht man Doc.h
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Mein Doc header Datei

#include
"MyPropertyPage3.h"
#include
"DateiStruktur.h"
#include
<afxdb.h>

class CDenemeStatistikDoc : public CDocument
{
protected: // Nur aus Serialisierung erzeugen
    CDenemeStatistikDoc();
    DECLARE_DYNCREATE(CDenemeStatistikDoc)

// Attribute
public:
    DateiStruktur    m_data;
    CDatabase        *m_pDatabase;
    BOOL bWert; //bWert hab ich in Doc klasse angelegt

//    DataStruktur    m_data;
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Mein Doc header Datei

#include
"MyPropertyPage3.h"
#include
"DateiStruktur.h"
#include
<afxdb.h>

class CDenemeStatistikDoc : public CDocument
{
protected: // Nur aus Serialisierung erzeugen
CDenemeStatistikDoc();
DECLARE_DYNCREATE(CDenemeStatistikDoc)

// Attribute
public:
DateiStruktur m_data;
CDatabase *m_pDatabase;
BOOL bWert; //bWert hab ich in Doc klasse angelegt

// DataStruktur m_data;
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Mein Doc header Datei

#include
"MyPropertyPage3.h"
#include
"DateiStruktur.h"
#include
<afxdb.h>

class CDenemeStatistikDoc : public CDocument
{
protected: // Nur aus Serialisierung erzeugen
    CDenemeStatistikDoc();
    DECLARE_DYNCREATE(CDenemeStatistikDoc)

// Attribute
public:
    DateiStruktur    m_data;
    CDatabase        *m_pDatabase;
    BOOL bWert; //bWert hab ich in Doc klasse angelegt

//    DataStruktur    m_data;


Jetzt kommt die zweite schritt, das ist mein Page/ Dialog Klasse

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/ Eigenschaftenseite CMyPropertyPage3

IMPLEMENT_DYNCREATE(CMyPropertyPage3, CPropertyPage)

CMyPropertyPage3::CMyPropertyPage3() : CPropertyPage(CMyPropertyPage3::IDD)
{
    //{{AFX_DATA_INIT(CMyPropertyPage3)
    m_bDatum = FALSE;//
    //}}AFX_DATA_INIT

    m_pDoc    = NULL;
}

CMyPropertyPage3::~CMyPropertyPage3()
{
}

void CMyPropertyPage3::DoDataExchange(CDataExchange* pDX)
{
    CPropertyPage::DoDataExchange(pDX);

    //{{AFX_DATA_MAP(CMyPropertyPage3)
    DDX_Check(pDX, IDC_DATUM, m_bDatum);
    //}}AFX_DATA_MAP
   
   
}


BEGIN_MESSAGE_MAP(CMyPropertyPage3, CPropertyPage)
    //{{AFX_MSG_MAP(CMyPropertyPage3)

    //}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen für Nachrichten CMyPropertyPage3


BOOL CMyPropertyPage3::OnInitDialog()
{
    // Um die Check box initialisieren zu können
    // Was muss hier gemacht werden..!


    Init();
    if (m_pDoc == NULL)
        return FALSE;


    CPropertyPage::OnInitDialog();
   
    bWert = m_pDoc->bWert; //Variablen einlesen
           
    CWnd* pWnd    = GetDlgItem(IDOK);

    if (pWnd)

    pWnd->ShowWindow(SW_HIDE);
    pWnd    = GetDlgItem(IDCANCEL);
    if (pWnd)
        pWnd->ShowWindow(SW_HIDE);

    return TRUE;
}

void CMyPropertyPage3::    Init()
{
        CFrameWnd* pWnd    = (CFrameWnd*)AfxGetMainWnd();
    if (pWnd == NULL)
        return;
    m_pDoc    = (CDenemeStatistikDoc*)pWnd->GetActiveDocument();

}

void CMyPropertyPage3::OnOK()
{
    m_pDoc->bWert = bWert;//Wert in Document sichern
   
    CPropertyPage::OnOK();
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/ Eigenschaftenseite CMyPropertyPage3

IMPLEMENT_DYNCREATE(CMyPropertyPage3, CPropertyPage)

CMyPropertyPage3::CMyPropertyPage3() : CPropertyPage(CMyPropertyPage3::IDD)
{
//{{AFX_DATA_INIT(CMyPropertyPage3)
m_bDatum = FALSE;//
//}}AFX_DATA_INIT

m_pDoc = NULL;
}

CMyPropertyPage3::~CMyPropertyPage3()
{
}

void CMyPropertyPage3::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CMyPropertyPage3)
DDX_Check(pDX, IDC_DATUM, m_bDatum);
//}}AFX_DATA_MAP


}


BEGIN_MESSAGE_MAP(CMyPropertyPage3, CPropertyPage)
//{{AFX_MSG_MAP(CMyPropertyPage3)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen für Nachrichten CMyPropertyPage3


BOOL CMyPropertyPage3::OnInitDialog()
{
// Um die Check box initialisieren zu können
// Was muss hier gemacht werden..!


Init();
if (m_pDoc == NULL)
return FALSE;


CPropertyPage::OnInitDialog();

bWert = m_pDoc->bWert; //Variablen einlesen

CWnd* pWnd = GetDlgItem(IDOK);

if (pWnd)

pWnd->ShowWindow(SW_HIDE);
pWnd = GetDlgItem(IDCANCEL);
if (pWnd)
pWnd->ShowWindow(SW_HIDE);

return TRUE;
}

void CMyPropertyPage3:: Init()
{
CFrameWnd* pWnd = (CFrameWnd*)AfxGetMainWnd();
if (pWnd == NULL)
return;
m_pDoc = (CDenemeStatistikDoc*)pWnd->GetActiveDocument();

}

void CMyPropertyPage3::OnOK()
{
m_pDoc->bWert = bWert;//Wert in Document sichern

CPropertyPage::OnOK();
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/ Eigenschaftenseite CMyPropertyPage3

IMPLEMENT_DYNCREATE(CMyPropertyPage3, CPropertyPage)

CMyPropertyPage3::CMyPropertyPage3() : CPropertyPage(CMyPropertyPage3::IDD)
{
    //{{AFX_DATA_INIT(CMyPropertyPage3)
    m_bDatum = FALSE;//
    //}}AFX_DATA_INIT

    m_pDoc    = NULL;
}

CMyPropertyPage3::~CMyPropertyPage3()
{
}

void CMyPropertyPage3::DoDataExchange(CDataExchange* pDX)
{
    CPropertyPage::DoDataExchange(pDX);

    //{{AFX_DATA_MAP(CMyPropertyPage3)
    DDX_Check(pDX, IDC_DATUM, m_bDatum);
    //}}AFX_DATA_MAP
   
   
}


BEGIN_MESSAGE_MAP(CMyPropertyPage3, CPropertyPage)
    //{{AFX_MSG_MAP(CMyPropertyPage3)

    //}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen für Nachrichten CMyPropertyPage3


BOOL CMyPropertyPage3::OnInitDialog()
{
    // Um die Check box initialisieren zu können
    // Was muss hier gemacht werden..!


    Init();
    if (m_pDoc == NULL)
        return FALSE;


    CPropertyPage::OnInitDialog();
   
    bWert = m_pDoc->bWert; //Variablen einlesen
           
    CWnd* pWnd    = GetDlgItem(IDOK);

    if (pWnd)

    pWnd->ShowWindow(SW_HIDE);
    pWnd    = GetDlgItem(IDCANCEL);
    if (pWnd)
        pWnd->ShowWindow(SW_HIDE);

    return TRUE;
}

void CMyPropertyPage3::    Init()
{
        CFrameWnd* pWnd    = (CFrameWnd*)AfxGetMainWnd();
    if (pWnd == NULL)
        return;
    m_pDoc    = (CDenemeStatistikDoc*)pWnd->GetActiveDocument();

}

void CMyPropertyPage3::OnOK()
{
    m_pDoc->bWert = bWert;//Wert in Document sichern
   
    CPropertyPage::OnOK();
}



und jetzt kommt die dritte schritt wo ich meine Dialog aufrufe

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    CMyPropertySheet propSheet;
    propSheet.DocPt2(m_pDoc1);
//    propSheet.DoModal();
    //+-----------------------------------------------------------------------------+
    //! Test Anfang                                                                    !
    //+-----------------------------------------------------------------------------+



    if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
    {
        propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
    }
    //+-----------------------------------------------------------------------------+
    //! Test Ende                                                                    !
    //+-----------------------------------------------------------------------------+
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1);
// propSheet.DoModal();
//+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+



if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
{
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    CMyPropertySheet propSheet;
    propSheet.DocPt2(m_pDoc1);
//    propSheet.DoModal();
    //+-----------------------------------------------------------------------------+
    //! Test Anfang                                                                    !
    //+-----------------------------------------------------------------------------+



    if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
    {
        propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
    }
    //+-----------------------------------------------------------------------------+
    //! Test Ende                                                                    !
    //+-----------------------------------------------------------------------------+


Könntest du mir sagen wo ich hier fehler mache...
Ich mach jetzt dasgleiche was du sagst oder hab ich wieder was vergessen...

Ich weiß ich nerve dich aber sorry..Danke im Voraus für die Unterstützung
CTecS
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.09.2008
Beiträge: 821
Beitrag CTecS Mitglied 17:26:22 11.03.2010   Titel:              Zitieren

langsam wird man gaga mit deinen Variablen, ersetz mal bitte in der Ini das so

C/C++ Code:
m_bDatum = m_pDoc->bWert; //Variablen einlesen
C/C++ Code:
m_bDatum = m_pDoc->bWert; //Variablen einlesen
C/C++ Code:
m_bDatum = m_pDoc->bWert; //Variablen einlesen


dasw gleiche dann nur umgekehrt in der OnOK() und die zeile
C/C++ Code:
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
C/C++ Code:
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
C/C++ Code:
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten


kannste ersatzlos löschen. Du solltest schon selbst mal sehn das du mit deinen Variablen klar kommst denn wenn du da nicht durch siehst, dann lass es lieber und befass dich noch mal mit den grundlagen, denn du solltest schon selbst durchsehen welche variable wo was macht.
Wir haben jetzt eigentlich nichts weiter gemacht als die Membervariable in der OnInit mit dem Wert aus dem Doc zu setzen und bei OnOK den gesetzten wieder zurück in die Doc zu schreiben wo der dann sicher ist.
Geh noch mal in dich und versuch das zu verstehen was du hier so stumpf abschreibst, denn wenn du das nicht verstehst wirst du beim nächsten problem gleich wieder fragen müssen. was dann wieder die gleiche oder ne ähnliche frage ist.
C/C++ Forum :: MFC (Visual C++) ::  Checkbox Abhacken  
Gehen Sie zu Seite Zurück  1, 2
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.