MFC ablakkezelés

MFC ablakkezelés
2013-04-24T10:43:08+02:00
2013-04-24T15:43:47+02:00
2022-11-28T21:45:38+01:00
sapi
Sziasztok,
a kérdésem a következö:
(VS 2008)
Van egy ablakom amiben többek között nézem egy edit controlba beadott karakterek helyességét. Ha nem jó karakter van benne, jön az AfxMessageBox. Ami a gondom, hogy amikor az AfxMessageBox meghívódik becsukódik az ablakom. A problémát csak egy while ciklussal tudtam megoldani. Igy ugyan becsukódik az ablak de annyiszor meghívódik amig nekem jó nem lesz. A kérdés az lenne,hogy tudom megoldani, hogy az ablak ne csukódjon be, hanem a AfxMessageBox után visszakerüljek az edit boxhoz?

Valahogy így néz ki:
****

D_EditProject dEditDlg("");

if(dEditDlg.DoModal() == IDOK)
{
if(IsValidProjektName(dEditDlg.m_sProjectName))
{
****
}
else
{
CString szErrMsg;
szErrMsg.LoadString (IDS_INVALID_PROJEKTNAME);
AfxMessageBox(szErrMsg,MB_ICONHAND);
}
}

****
ha valakinek van ötlete , megköszönöm!
Mutasd a teljes hozzászólást!
Az ellenőrzést nem az ablak bezáródása után kellene elvégezni, hanem még bezárás előtt, magában az 'dEditDlg' ablakkezelő függvényében. Amikor pl. IDOK üzenet érkezik, ki kell olvasni az adott edit boxot és ha nem megfelelő a beírt szöveg, akkor nem zárja be az ablakot.
(A pontosítás kedvéért, az általad vázolt helyzetben nem az AfxMessageBox meghívása miatt záródik be a 'dEditDlg', hanem az AfxMessageBox hívása történik az 'dEditDlg' bezáródása után).
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd