Re: dialog boxes, ok cancel
If you show us your code, we probably can help you. Without seeing the code, all we can say is "by writing the code to update only when OK is selected".
Re: dialog boxes, ok cancel
Code:
void CPflowView::OnGenerator()
{
// TODO: Add your command handler code here
CPflowDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CGeneratorpropertysheet1 gendialog;
gendialog.DoModal();
m_genbus = gendialog.m_busno ;
m_genx1 = atol(gendialog.m_genx1) ;
m_genx0 = atol(gendialog.m_genx0) ;
m_genminmvar = atol(gendialog.m_genminmvar) ;
m_genmaxmvar = atol(gendialog.m_genmaxmvar) ;
m_genmw = atol(gendialog.m_genmw) ;
m_genmvar = atol(gendialog.m_genmvar) ;
m_genname = gendialog.m_genname ;
m_orien = gendialog.m_genorien ;
gensize= atol(gendialog.m_gensize) ;
while(!pDoc->CheckNotBus(atol(m_genbus)))
{
gendialog.DoModal();
m_genbus = gendialog.m_busno ;
m_genx1 = atol(gendialog.m_genx1) ;
m_genx0 = atol(gendialog.m_genx0) ;
m_genminmvar = atol(gendialog.m_genminmvar) ;
m_genmaxmvar = atol(gendialog.m_genmaxmvar) ;
m_genmw = atol(gendialog.m_genmw) ;
m_genmvar = atol(gendialog.m_genmvar) ;
m_genname = gendialog.m_genname ;
m_orien = gendialog.m_genorien ;
gensize= atol(gendialog.m_gensize) ;
}
bCheckGenOpt=TRUE;
SetCapture();
}
well this is the function called to exchange as well as call the dialog box am using.....
Re: dialog boxes, ok cancel
The DoModal function returns an int that indicates if the user pressed OK or Cancel.
Code:
MyDialog dlg;
if (dlg.DoModal() == IDOK)
{
// user pressed OK
}
else
{
// user pressed Cancel or close button or something else
}
Re: dialog boxes, ok cancel
Here's what you have:
Code:
CGeneratorpropertysheet1 gendialog;
gendialog.DoModal();
m_genbus = gendialog.m_busno ;
m_genx1 = atol(gendialog.m_genx1) ;
m_genx0 = atol(gendialog.m_genx0) ;
m_genminmvar = atol(gendialog.m_genminmvar) ;
m_genmaxmvar = atol(gendialog.m_genmaxmvar) ;
m_genmw = atol(gendialog.m_genmw) ;
m_genmvar = atol(gendialog.m_genmvar) ;
m_genname = gendialog.m_genname ;
m_orien = gendialog.m_genorien ;
gensize= atol(gendialog.m_gensize) ;
while(!pDoc->CheckNotBus(atol(m_genbus)))
{
gendialog.DoModal();
m_genbus = gendialog.m_busno ;
m_genx1 = atol(gendialog.m_genx1) ;
m_genx0 = atol(gendialog.m_genx0) ;
m_genminmvar = atol(gendialog.m_genminmvar) ;
m_genmaxmvar = atol(gendialog.m_genmaxmvar) ;
m_genmw = atol(gendialog.m_genmw) ;
m_genmvar = atol(gendialog.m_genmvar) ;
m_genname = gendialog.m_genname ;
m_orien = gendialog.m_genorien ;
gensize= atol(gendialog.m_gensize) ;
}
but what you probably need to do is more like:
Code:
CGeneratorpropertysheet1 gendialog;
// DON"T CREATE THE DIALOG YET... but set the dialog to the current values:
// gendialog.DoModal();
// m_genbus = gendialog.m_busno ;
// m_genx1 = atol(gendialog.m_genx1) ;
// m_genx0 = atol(gendialog.m_genx0) ;
// m_genminmvar = atol(gendialog.m_genminmvar) ;
// m_genmaxmvar = atol(gendialog.m_genmaxmvar) ;
// m_genmw = atol(gendialog.m_genmw) ;
// m_genmvar = atol(gendialog.m_genmvar) ;
// m_genname = gendialog.m_genname ;
// m_orien = gendialog.m_genorien ;
// NOTE THAT YOU HAD MANY atol() so you may have to do something different
// to set the strings for your dialog - I can't tell for sure which dialog
// members are strings.
gensize= atol(gendialog.m_gensize) ;
gendialog.m_busno = m_genbus;
gendialog.m_genx1 = itoa(m_genx1));
gendialog.m_genx0 = itoa(m_genx0);
gendialog.m_genminmvar = itoa(m_genminmvar);
gendialog.m_genmaxmvar = itoa(m_genmaxmvar);
gendialog.m_genmw = itoa(m_genmw) ;
gendialog.m_genmvar = itoa(m_genmvar);
gendialog.m_genname = m_genname;
gendialog.m_genorien = m_orien;
gendialog.m_gensize = itoa(gensize);
while(!pDoc->CheckNotBus(atol(m_genbus)))
{
// NOW you display the dialog, but check the return value, and save them
// only if the user said OK:
if (gendialog.DoModal()) == IDOK)
{
m_genbus = gendialog.m_busno ;
m_genx1 = atol(gendialog.m_genx1) ;
m_genx0 = atol(gendialog.m_genx0) ;
m_genminmvar = atol(gendialog.m_genminmvar) ;
m_genmaxmvar = atol(gendialog.m_genmaxmvar) ;
m_genmw = atol(gendialog.m_genmw) ;
m_genmvar = atol(gendialog.m_genmvar) ;
m_genname = gendialog.m_genname ;
m_orien = gendialog.m_genorien ;
gensize= atol(gendialog.m_gensize) ;
}
}
Hope that give you an idea of how to handle this - you'll need to work out the details yourself.