CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 5 of 5
  1. #1
    Join Date
    May 2009
    Posts
    88

    Post dialog boxes, ok cancel

    well I have a application in which i call a dialog box whenever user clicks on menu button, and the values filled by user are exchanged with view variables, but the problem in my application is that this exchange occurs always wheter ok or cancel or any of them is clicked.....how could i restrict this to occur only when user clicks on OK??

  2. #2
    Join Date
    Jan 2002
    Location
    Houston, TX
    Posts
    1,421

    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".
    Be sure to rate those who help!
    -------------------------------------------------------------
    Karl - WK5M
    PP-ASEL-IA (N43CS)
    PGP Key: 0xDB02E193
    PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193

  3. #3
    Join Date
    May 2009
    Posts
    88

    Post 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.....

  4. #4
    Join Date
    Jul 2005
    Location
    Netherlands
    Posts
    2,042

    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
    }
    Cheers, D Drmmr

    Please put [code][/code] tags around your code to preserve indentation and make it more readable.

    As long as man ascribes to himself what is merely a posibility, he will not work for the attainment of it. - P. D. Ouspensky

  5. #5
    Join Date
    Jan 2002
    Location
    Houston, TX
    Posts
    1,421

    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.
    Be sure to rate those who help!
    -------------------------------------------------------------
    Karl - WK5M
    PP-ASEL-IA (N43CS)
    PGP Key: 0xDB02E193
    PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured