[C++/MFC] Assertion Failed in RadioButton *

Pagina: 1
Acties:
  • 190 views sinds 30-01-2008
  • Reageer

  • AuC
  • Registratie: Januari 2003
  • Laatst online: 10-07 15:00
Okay, ik ben dus een n00b op MFC gebied. Nou wil ik een programmatje maken die voor een Gamessite een layer over een screenshot legt met het logo van de site. Nu wil ik opties opslaan in een .dat bestand, okay dat gaat allemaal goed. Ophalen ook, maar als ik deze opties op het scherm wil laten zien krijg ik een Debug Assertion error. Ik heb de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
COptionsDlg::COptionsDlg(CWnd* pParent /*=NULL*/)
    : CDialog(COptionsDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(COptionsDlg)
        // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT

    CButton* pRadio[3];

    pRadio[0] = (CButton*)GetDlgItem(IDC_RADIO1);
    pRadio[1] = (CButton*)GetDlgItem(IDC_RADIO2);
    pRadio[2] = (CButton*)GetDlgItem(IDC_RADIO3);
    pRadio[3] = (CButton*)GetDlgItem(IDC_RADIO4);


    if(ProgramOptions.Position == POS_TOPLEFT) pRadio[0]->SetCheck(1);
    if(ProgramOptions.Position == POS_TOPRIGHT) pRadio[1]->SetCheck(1);
    if(ProgramOptions.Position == POS_BOTTOMLEFT) pRadio[2]->SetCheck(1);
    if(ProgramOptions.Position == POS_BOTTOMRIGHT) pRadio[3]->SetCheck(1);

}


Kan iemand mij zeggen wat ik fout doe? :?

Edit:
Sorry, vergeten topictitel af te maken 8)7
Titel: "Assertion Error bij waarde veranderen van Radio Button".

fix0red. hint van Eelis dat je dit even moest doen verwijderd omdat het anders wat 'loze reply' zou zijn nu het veranderd is ;) als er iets aan je topic veranderd moet worden, zet het even in SeM of een topicreport de volgende keer? dan raakt het topic zelf er niet door vervuild en pikken we het sneller op :Y)

[ Voor 22% gewijzigd door curry684 op 31-08-2003 13:12 ]


  • Eelis
  • Registratie: Januari 2003
  • Laatst online: 21-02-2015
.

[ Voor 133% gewijzigd door Eelis op 18-02-2015 20:04 ]


  • AuC
  • Registratie: Januari 2003
  • Laatst online: 10-07 15:00
Met pRadio[3] maak ik toch een array van 4 elementen? Namelijk 0 t/m 3.

  • Eelis
  • Registratie: Januari 2003
  • Laatst online: 21-02-2015
.

[ Voor 104% gewijzigd door Eelis op 18-02-2015 20:04 ]


  • Zoetjuh
  • Registratie: Oktober 2001
  • Laatst online: 10-01-2024
Uhm ok een array [3] heeft 3 items hè 0 t/m 2
Blijft een beetje verwarrend ja, maarja.. het getal bij de define is het aantal items en een array is ge-nul-indexed, dus beginnen de items te tellen bij 0; ofwel:

CButton* pRadio[3];

moet worden:

CButton* pRadio[4];

  • AuC
  • Registratie: Januari 2003
  • Laatst online: 10-07 15:00
Ow okay. Nu heb ik dit gefixed, echter hou ik hetzelfde probleem.

Ik heb nu het volgende staan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
COptionsDlg::COptionsDlg(CWnd* pParent /*=NULL*/)
    : CDialog(COptionsDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(COptionsDlg)
        // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT

    CButton* pRadio[4];

    pRadio[0] = (CButton*)GetDlgItem(IDC_RADIO1);
    pRadio[1] = (CButton*)GetDlgItem(IDC_RADIO2);
    pRadio[2] = (CButton*)GetDlgItem(IDC_RADIO3);
    pRadio[3] = (CButton*)GetDlgItem(IDC_RADIO4);


    if(ProgramOptions.Position == POS_TOPLEFT) pRadio[0]->SetCheck(1);
    if(ProgramOptions.Position == POS_TOPRIGHT) pRadio[1]->SetCheck(1);
    if(ProgramOptions.Position == POS_BOTTOMLEFT) pRadio[2]->SetCheck(1);
    if(ProgramOptions.Position == POS_BOTTOMRIGHT) pRadio[3]->SetCheck(1);
}


in "stdafx.h" heb ik de structure van ProgramOptions en ProgramOptions als volgend gedefineerd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
typedef struct OptionsStruct 
{
    DWORD   Position;
    LPTSTR  LogoLocation;
};

enum Positions {
    POS_TOPLEFT = 1000,
    POS_TOPRIGHT,
    POS_BOTTOMLEFT,
    POS_BOTTOMRIGHT
};

extern OptionsStruct ProgramOptions;


En in de CPP van de App heb ik OptionsStruct Programoptions gedeclareerd. Maar ik krijg nogsteeds de volgende error:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!

Program: ...les\Microsoft Visual Studio\MyProjects\PCGS\SSM\Debug\SSM.exe
File: winocc.cpp
Line: 76

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)
---------------------------
Afbreken   Opnieuw   Negeren   
---------------------------


Edit
Het probleem zit hem in het toewijzen van de RadioButtons aan pRadio, met GetDlgItem().

[ Voor 7% gewijzigd door AuC op 31-08-2003 14:02 ]

Pagina: 1