[C++] AfxMessageBox keuze maken

Pagina: 1
Acties:
  • 45 views sinds 30-01-2008

  • SmidsY
  • Registratie: Juni 2001
  • Laatst online: 23-05 21:09

SmidsY

hallo!?.............

Topicstarter
Ik ben bezig met een MFC programma in Visual C++. Ik wil dat als de gebruiker op een knop drukt een bericht krijgt met een keuze (ok en cancel) kiest hij ok, dan wordt de reset uitgevoerd, cancel, dan gebeurt er niets.
Ik heb m.b.v. msdn (http://msdn.microsoft.com...ml/_mfc_afxmessagebox.asp en aanverwante pagina's) het volgende stuk code geschreven,

C++:
226
227
228
229
230
231
232
233
234
235
236
void CArtikelView::OnBnClickedResetRecord()
{
    AfxMessageBox("Reset Database View!?",MB_ICONWARNING|MB_OKCANCEL);
    if (IDOK){
    m_pSet->Close(); 
    m_pSet->m_strFilter = ""; 
    m_pSet->Open();
    UpdateData(FALSE);
    }
    else (IDCANCEL);
}


Wat ik wil gebeurt, echter het maakt niet uit welke keuze je maakt (ok of cancel) hij voert toch de reset code uit. Wat doe ik fout!?

Het probleem is gelokaliseerd, het bevindt zich tussen het keyboard en de rugleuning.


Verwijderd

je vergelijkt hier alleen de constantes IDOK en IDCANCEL, niet de uitkomst van AfxMessageBox, IDOK is blijkbaar ongelijk aan nul (zo gedefinieerd ), dus je if is altijd waar.

[ Voor 35% gewijzigd door Verwijderd op 06-05-2004 12:16 . Reden: verbeteren ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 25-05 23:56
code:
1
if( AfxMessageBox( "....." ) == IDOK )


Ik begrijp niet hoe je er toe komt om zo te testen:
code:
1
if( IDOK )

:?

Met wat moet IDOK vergeleken worden dan?

[ Voor 60% gewijzigd door whoami op 06-05-2004 12:18 ]

https://fgheysels.github.io/


  • SmidsY
  • Registratie: Juni 2001
  • Laatst online: 23-05 21:09

SmidsY

hallo!?.............

Topicstarter
whoami schreef op 06 mei 2004 @ 12:16:
code:
1
if( AfxMessageBox( "....." ) == IDOK )
Danku voor deze pointer, hiermee lukt het wel, vreemd dat ze dat niet als voorbeeld hebben gedaan in de msdn. De werkende code is nu alsvolgt,

C++:
226
227
228
229
230
231
232
233
234
235
void CArtikelView::OnBnClickedResetRecord()
{
    if( AfxMessageBox("Reset Database View!?",MB_ICONWARNING|MB_OKCANCEL) == IDOK ){
        m_pSet->Close(); 
        m_pSet->m_strFilter = ""; 
        m_pSet->Open();
        UpdateData(FALSE);
    }
    else;
}

Het probleem is gelokaliseerd, het bevindt zich tussen het keyboard en de rugleuning.


  • whoami
  • Registratie: December 2000
  • Laatst online: 25-05 23:56
Er staat toch in de MSDN wat de returnwaarde van die functie is, en je weet toch hoe je op return-waarde moet checken?

https://fgheysels.github.io/


  • SmidsY
  • Registratie: Juni 2001
  • Laatst online: 23-05 21:09

SmidsY

hallo!?.............

Topicstarter
whoami schreef op 06 mei 2004 @ 12:32:
Er staat toch in de MSDN wat de returnwaarde van die functie is, en je weet toch hoe je op return-waarde moet checken?
Ja dat klopt, echter dat had ik geinterpeteerd op de manier zoals ik de eerste code had gepost, niet de correcte methode dus |:(

Het probleem is gelokaliseerd, het bevindt zich tussen het keyboard en de rugleuning.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Mjah dit is basic debuggen, pak een C++ tutorial en copy/paste de code goed uit MSDN :)

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.