| Autor |
Nachricht |
Power21
Unregistrierter
|
Power21 Unregistrierter
14:44:41 10.03.2010 Titel: |
Checkbox Abhacken |
Zitieren |
| 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 | 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 | /////////////////////////////////////////////////////////////////////////////
// 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()
{
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;
}
BOOL CMyPropertyPage3::OnApply()
{
return CPropertyPage::OnApply();
}
void CMyPropertyPage3:: Init()
{
CFrameWnd* pWnd = (CFrameWnd*)AfxGetMainWnd();
if (pWnd == NULL)
return;
m_pDoc = (CDenemeStatistikDoc*)pWnd->GetActiveDocument();
}
| |
| 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 | /////////////////////////////////////////////////////////////////////////////
// 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()
{
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;
}
BOOL CMyPropertyPage3::OnApply()
{
return CPropertyPage::OnApply();
}
void CMyPropertyPage3:: Init()
{
CFrameWnd* pWnd = (CFrameWnd*)AfxGetMainWnd();
if (pWnd == NULL)
return;
m_pDoc = (CDenemeStatistikDoc*)pWnd->GetActiveDocument();
}
| |
| 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 | /////////////////////////////////////////////////////////////////////////////
// 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()
{
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;
}
BOOL CMyPropertyPage3::OnApply()
{
return CPropertyPage::OnApply();
}
void CMyPropertyPage3:: Init()
{
CFrameWnd* pWnd = (CFrameWnd*)AfxGetMainWnd();
if (pWnd == NULL)
return;
m_pDoc = (CDenemeStatistikDoc*)pWnd->GetActiveDocument();
}
| |
Oben sieht man Sourcecode meines Dialoges.Ich habe auf diesem Dialog ein Kontrokästchen ( Checkbox ) erstellt und die member variable meines Checkboxes ist "m_bDatum"
Ich möchte folgendes machen -> wenn ich Checkbox abhacke und auf OK button dürcke und Dialog schließe, möchte ich bei der neuöffnung des Dialogs(also wenn ich mein dialog nochmal neu öffne) mein Checkbox abgehackt sehen oder umgekehrt.
Könnte jemand mir Helfen? Was sollte ich noch hinzufügen??
Vielen Dank |
|
|
|
 |
y-vonne
Unregistrierter
|
y-vonne Unregistrierter
15:54:10 10.03.2010 Titel: |
|
Zitieren |
Du musst UpdateData(); aufrufen. |
|
|
|
 |
Power21
Unregistrierter
|
Power21 Unregistrierter
16:00:59 10.03.2010 Titel: |
|
Zitieren |
Wo muss ich das aufrufen ?
ist das alles was ich machen muss? |
|
|
|
 |
Tester2
Mitglied
Benutzerprofil
Anmeldungsdatum: 29.11.2006
Beiträge: 238
|
Tester2 Mitglied
16:07:06 10.03.2010 Titel: |
|
Zitieren |
Du musst dir natürlich außerhalb des Dialog den zuletzt gesetzten Wert merken.
z.B. so
| C/C++ Code: | BOOL bWert=FALSE;
if(dlg.DoMoldal()==IDOK){
bWert=dlg.GetBDatum();
} | |
| C/C++ Code: | BOOL bWert=FALSE;
if(dlg.DoMoldal()==IDOK){
bWert=dlg.GetBDatum();
} | |
| C/C++ Code: | BOOL bWert=FALSE;
if(dlg.DoMoldal()==IDOK){
bWert=dlg.GetBDatum();
} | |
|
_________________ Tester2
|
|
 |
Martin Richter
Moderator
Benutzerprofil
Anmeldungsdatum: 18.04.2006
Beiträge: 13513
|
Martin Richter Moderator
16:11:18 10.03.2010 Titel: |
|
Zitieren |
UpdateData wird bei OK automatisch aufgerufen. Dito bei Apply.
m_bDatum ist also in dem Moment aktuell... |
_________________ Martin Richter (MVP für C++) WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written program is its own hell!" The Tao of Programming
|
|
 |
Power21
Unregistrierter
|
Power21 Unregistrierter
16:24:59 10.03.2010 Titel: |
|
Zitieren |
ich bin total durcheinander..
Wo muss ich GetBDatum() funktion schreiben? was muss der Funktion machen??? |
|
|
|
 |
Power21
Unregistrierter
|
Power21 Unregistrierter
16:39:30 10.03.2010 Titel: |
|
Zitieren |
Ich würd mich sehr freuen wenn mir jemand bisschen deutlicher HElfen könnte..
Vielen Dank |
|
|
|
 |
Power21
Unregistrierter
|
Power21 Unregistrierter
17:23:15 10.03.2010 Titel: |
|
Zitieren |
|
 |
_matze
Mitglied
Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
|
_matze Mitglied
17:32:18 10.03.2010 Titel: |
|
Zitieren |
Jede halbe Stunde frech pushen wird dir auch nicht weiterhelfen. |
_________________ Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
|
|
 |
CTecS
Mitglied
Benutzerprofil
Anmeldungsdatum: 14.09.2008
Beiträge: 821
|
CTecS Mitglied
18:59:48 10.03.2010 Titel: |
|
Zitieren |
Na man das is doch ganz einfach
| C/C++ Code: | dlg.m_bDatum=WERT; //mit deinem gemerkten Wert die Variable initialisieren
if(dlg.DoMoldal()==IDOK)
{
bWert=dlg.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
| |
| C/C++ Code: | dlg.m_bDatum=WERT; //mit deinem gemerkten Wert die Variable initialisieren
if(dlg.DoMoldal()==IDOK)
{
bWert=dlg.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
| |
| C/C++ Code: | dlg.m_bDatum=WERT; //mit deinem gemerkten Wert die Variable initialisieren
if(dlg.DoMoldal()==IDOK)
{
bWert=dlg.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
| |
Jetzt kannst du das noch mit Getter und Setter-Funktionen die du in deiner Dialog-Klasse erstellst setzen und zurücklesen, wenn du das unbedingt machen willst, das würde dann der Funktion GetBDatum entsprechen.
So sollten deine Fragen beantwortet sein. |
Zuletzt bearbeitet von CTecS am 20:57:05 10.03.2010, insgesamt 1-mal bearbeitet |
|
 |
abhacker
Unregistrierter
|
abhacker Unregistrierter
20:09:35 10.03.2010 Titel: |
|
Zitieren |
|
 |
Power21
Unregistrierter
|
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
|
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
|
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
|
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
|
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
|
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. |
|
|
|
 |