Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Invalidate() Error CDialog

Invalidate() Error CDialog

Scheduled Pinned Locked Moved C / C++ / MFC
helpc++data-structurestutorial
24 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M mohit 12

    Hello again, I have three class and one mainframe for my project. one class(calculator) holds bunch of functions and commands and button that works fine(formview class with mfc) in the same class i defined tabcontrol called mytabcontrol and in each tab i have one common class called tab_one. now tab_one gets data from calculator and displays graph of those values and when i switch tab it suppose to read data again from calculator and redraw graph. I tried invalidate() and invalidateRect functions but it shows m_hWnd has not been used and 0X000000. if anyone got clue how to solve this. Please reply. I will post details of program and problem later.

    N Offline
    N Offline
    Niklas L
    wrote on last edited by
    #2

    Assuming it's the tab_one instances you are trying to repaint: Have you created the instances of your tab_one class by using one of the various Create functions? From the error description it looks like you are trying to use a window object that was never created (or was created, but then destroyed) Either you create all instances when you create the tab control, or you create the required instance when a tab is activated the first time.

    home

    M 2 Replies Last reply
    0
    • M mohit 12

      Hello again, I have three class and one mainframe for my project. one class(calculator) holds bunch of functions and commands and button that works fine(formview class with mfc) in the same class i defined tabcontrol called mytabcontrol and in each tab i have one common class called tab_one. now tab_one gets data from calculator and displays graph of those values and when i switch tab it suppose to read data again from calculator and redraw graph. I tried invalidate() and invalidateRect functions but it shows m_hWnd has not been used and 0X000000. if anyone got clue how to solve this. Please reply. I will post details of program and problem later.

      K Offline
      K Offline
      KarstenK
      wrote on last edited by
      #3

      if m_hWnd is 0X000000 means that the windows isnt created or yet destroyed. Press F1 for help or google it. Greetings from Germany

      M 1 Reply Last reply
      0
      • N Niklas L

        Assuming it's the tab_one instances you are trying to repaint: Have you created the instances of your tab_one class by using one of the various Create functions? From the error description it looks like you are trying to use a window object that was never created (or was created, but then destroyed) Either you create all instances when you create the tab control, or you create the required instance when a tab is activated the first time.

        home

        M Offline
        M Offline
        mohit 12
        wrote on last edited by
        #4

        tab_one is child dialog and it is under mytabcontrol so if i switch tabs in tab control it calls method of my tab_one class. Creation of tab_one.h : class CTab_one : public CDialog { DECLARE_DYNAMIC(CTab_one) private: //variables public: CTab_one(CWnd * pParent=NULL); // standard constructor virtual ~CTab_one(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif // Dialog Data public: enum { IDD = IDD_TAB_ONE }; public: //variables declaration public: //methods virtual BOOL OnInitDialog(); protected: virtual void OnPrint(CDC *pDC, CPrintInfo *pInfo); virtual void OnDraw( CDC * pDC); protected: virtual void DoDataExchange(CDataExchange* pDX); afx_msg void OnFileSave(); afx_msg void OnPaint(); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); DECLARE_MESSAGE_MAP() }; #endif tab_one.cpp // CTab_one.cpp : implementation file // #include "stdafx.h" #include "Tab_one.h" #include "afxwin.h" IMPLEMENT_DYNAMIC(CTab_one, CDialog) CTab_one::CTab_one(CWnd* pParent /*=NULL*/) : CDialog(CTab_one::IDD, pParent) { } CTab_one::~CTab_one() { } void CTab_one::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BOOL CTab_one::OnInitDialog( void) { CDialog::OnInitDialog(); CTab_one::GetSafeHwnd(); CString cstring = " It exists"; if(::IsWindow(m_hWnd)) { AfxMessageBox(cstring); // it does have value here // - m_hWnd 0x000f0c30 {unused=??? } HWND__ * unused CXX0030: Error: expression cannot be evaluated } GetParentFrame()->RecalcLayout(); CDialog *ctab; // to check m_hWnd value GetDefaultValues();//method in tab_one return true; } BOOL CTab_one::CreateModelessDlg(void) { // TODO: Add your specialized code here and/or call the base class return (CDialog::Create(CTab_one::IDD, this)!=0); } int CTab_one::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here return 0; } BEGIN_MESSAGE_MAP(CTab_one, CDialog) ON_WM_PAINT() ON_WM_CREATE() ON_COMMAND(ID_FILE_SAVE, OnFileSave) END_MESSAGE_MAP() void CTab_one::OnPrint( CDC * pDC, CPrintInfo * pInfo) { // TODO: add customized printing code here this->OnDraw(pDC); } void CTab_one::OnPaint() { CPaintDC dc(this); OnDraw( &dc ); } #ifdef _DEBUG void CTab_one::AssertValid() const { CDialog::AssertValid(); } vo

        1 Reply Last reply
        0
        • K KarstenK

          if m_hWnd is 0X000000 means that the windows isnt created or yet destroyed. Press F1 for help or google it. Greetings from Germany

          M Offline
          M Offline
          mohit 12
          wrote on last edited by
          #5

          okay Hey, I found out my problem but no solution yet. The reason m_hWnd is getting null because i am trying to update tab_one out side of that class which is mytabcontrol: This is what happening : My Tab Control (Holds Tab) Tab_one ( Holds data and on draw graph) switch tab(tab_current changes) Draws first graph initial graph if(tab_current changes) OnDraw() is called tab_one is already initialized ---------> calls method -----------> ongraph1(){changes graph &try to update which should call ondraw again it wont update because ongraph1() got called by mytabcontrol who doesn't know what m_hWnd is for tab_one if you call updategraph() inside of tab_one it will work and will show value of m_hWnd..but from mytabcontrol NOPE.. so is there anyway i can inform mytabcontrol that tab_one is initialzed and has soem value of m_hWnd and use that value to updategraph.

          K 1 Reply Last reply
          0
          • N Niklas L

            Assuming it's the tab_one instances you are trying to repaint: Have you created the instances of your tab_one class by using one of the various Create functions? From the error description it looks like you are trying to use a window object that was never created (or was created, but then destroyed) Either you create all instances when you create the tab control, or you create the required instance when a tab is activated the first time.

            home

            M Offline
            M Offline
            mohit 12
            wrote on last edited by
            #6

            Hey, Yes I Do have instance created in mytabcontrol of tab_one but when i tell tab_one to call that method which actully draws graph and then repaint that in tab_one ..it gets confused with m_hWnd it shows m_hWnd is 0X00000 means there is no window because that method got called by mytabcontrol.

            N 1 Reply Last reply
            0
            • M mohit 12

              Hey, Yes I Do have instance created in mytabcontrol of tab_one but when i tell tab_one to call that method which actully draws graph and then repaint that in tab_one ..it gets confused with m_hWnd it shows m_hWnd is 0X00000 means there is no window because that method got called by mytabcontrol.

              N Offline
              N Offline
              Niklas L
              wrote on last edited by
              #7

              Having an instance of the tab_one class is not enough to get this right. I think you might be taking construction for creation. You construct a window wrapper object in the constructor, but that does not create the underlying window. It will however set m_hWnd to NULL. You have to call one of the Create methods in order to get a valid window handle, m_hWnd. If you do this when your entire tab control is created, or better yet, when a tab is inserted into your tab control, you will not run into this problem.

              home

              M 1 Reply Last reply
              0
              • N Niklas L

                Having an instance of the tab_one class is not enough to get this right. I think you might be taking construction for creation. You construct a window wrapper object in the constructor, but that does not create the underlying window. It will however set m_hWnd to NULL. You have to call one of the Create methods in order to get a valid window handle, m_hWnd. If you do this when your entire tab control is created, or better yet, when a tab is inserted into your tab control, you will not run into this problem.

                home

                M Offline
                M Offline
                mohit 12
                wrote on last edited by
                #8

                ok so you trying to say when i am trying to call anymethod from outside of tab_one class i will have to recreate the tabs? or i call method create inside the tab_one. I have mytabcontrol which controls all tabs and tab_one which draw something inside each tab(dialog box) could you please try to reply me practically maybe in code would help.. thanks a lot.

                N 1 Reply Last reply
                0
                • M mohit 12

                  okay Hey, I found out my problem but no solution yet. The reason m_hWnd is getting null because i am trying to update tab_one out side of that class which is mytabcontrol: This is what happening : My Tab Control (Holds Tab) Tab_one ( Holds data and on draw graph) switch tab(tab_current changes) Draws first graph initial graph if(tab_current changes) OnDraw() is called tab_one is already initialized ---------> calls method -----------> ongraph1(){changes graph &try to update which should call ondraw again it wont update because ongraph1() got called by mytabcontrol who doesn't know what m_hWnd is for tab_one if you call updategraph() inside of tab_one it will work and will show value of m_hWnd..but from mytabcontrol NOPE.. so is there anyway i can inform mytabcontrol that tab_one is initialzed and has soem value of m_hWnd and use that value to updategraph.

                  K Offline
                  K Offline
                  KarstenK
                  wrote on last edited by
                  #9

                  you are mixing something that is buggy. Use some pointers to the approbiate objects. Press F1 for help or google it. Greetings from Germany

                  M 1 Reply Last reply
                  0
                  • M mohit 12

                    ok so you trying to say when i am trying to call anymethod from outside of tab_one class i will have to recreate the tabs? or i call method create inside the tab_one. I have mytabcontrol which controls all tabs and tab_one which draw something inside each tab(dialog box) could you please try to reply me practically maybe in code would help.. thanks a lot.

                    N Offline
                    N Offline
                    Niklas L
                    wrote on last edited by
                    #10

                    I assume you have something like the following: 1. A form view or dialog that contains your tab control, say FormDlg. 2. A tab control class, either a CTabCtrl or a class derived from that. 3. This tab control contains a few tabs, where each should display a child dialog of type tab_one or derived from tab_one. First, you either add a tab control in the resource editor and hook it up to a member variable of your FormDlg class, m_tabs. Or you create a tab control dynamically in FormDlg using CTabCtrl::Create(). Now every time you insert a new tab using CTabCtrl::InsetItem(), you also create a child dialog of type tab_one, using tab_one::Create(). You can also chose to create all these child dialogs when the tab control is first created, if the control has a fixed set of tabs. Make sure you position the child dialog relative your tab controls client area. It's a bit tricky, since the client area also includes the actual tabs at the top (stupid design I know) but you can get the hight if the tabs and adjust your display rectangle. If the tab control is self contained, you keep those dialogs as members of your tab control derived class, otherwise they can be members of your FormDlg. Now, displaying the proper child dialog is just a matter of responding the the TCN_SELCHANGE message and call tab_one::ShowWindow(SW_SHOW) for the activated tab, and ShowWindow(SW_HIDE) for the others.

                    home

                    M 1 Reply Last reply
                    0
                    • N Niklas L

                      I assume you have something like the following: 1. A form view or dialog that contains your tab control, say FormDlg. 2. A tab control class, either a CTabCtrl or a class derived from that. 3. This tab control contains a few tabs, where each should display a child dialog of type tab_one or derived from tab_one. First, you either add a tab control in the resource editor and hook it up to a member variable of your FormDlg class, m_tabs. Or you create a tab control dynamically in FormDlg using CTabCtrl::Create(). Now every time you insert a new tab using CTabCtrl::InsetItem(), you also create a child dialog of type tab_one, using tab_one::Create(). You can also chose to create all these child dialogs when the tab control is first created, if the control has a fixed set of tabs. Make sure you position the child dialog relative your tab controls client area. It's a bit tricky, since the client area also includes the actual tabs at the top (stupid design I know) but you can get the hight if the tabs and adjust your display rectangle. If the tab control is self contained, you keep those dialogs as members of your tab control derived class, otherwise they can be members of your FormDlg. Now, displaying the proper child dialog is just a matter of responding the the TCN_SELCHANGE message and call tab_one::ShowWindow(SW_SHOW) for the activated tab, and ShowWindow(SW_HIDE) for the others.

                      home

                      M Offline
                      M Offline
                      mohit 12
                      wrote on last edited by
                      #11

                      Hey, thx for your reply:D ok let me explain what i have done brifley, I Have 3 classes. First one is gphview which is formview based class which contains mytabctrl and on half window it contains some function of calculater(adding,multiply,subtract) Second one is mytabcontrol which holds 9 different tabs and create dialog for each tab Lastone is tab_one class which is dialog based class which draws the graphs according to tab selected. In first gphView class : void GphView::OnInitialUpdate( void) { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); m_tabMyTabCtrl.InsertItem(0, _T("Graph1")); m_tabMyTabCtrl.InsertItem(1, _T("Graph1")); m_tabMyTabCtrl.InsertItem(2, _T("Graph1")); m_tabMyTabCtrl.InsertItem(3, _T("Graph1")); m_tabMyTabCtrl.InsertItem(4, _T("Graph1")); m_tabMyTabCtrl.InsertItem(5, _T("Graph1")); m_tabMyTabCtrl.InsertItem(6, _T("Graph1")); m_tabMyTabCtrl.InsertItem(7, _T("Graph1(occupied)")); m_tabMyTabCtrl.Init(); } In mytabctrl class: CMyTabCtrl::CMyTabCtrl() { pTab = new CTab_one(this); // instance of tab_one class declared in header file CTab_one *pTab; } CMyTabCtrl::~CMyTabCtrl() { } void CMyTabCtrl::Init() { m_tabPages[0]=new CTab_one; // m_tabpages declared in header like this CDialog *m_tabPages[8]; m_tabPages[1]=new CTab_one; m_tabPages[2]=new CTab_one; m_tabPages[3]=new CTab_one; m_tabPages[4]=new CTab_one; m_tabPages[5]=new CTab_one; m_tabPages[6]=new CTab_one; m_tabPages[7]=new CTab_one; m_nNumberOfPages=8; m_tabCurrent=0; m_tabPages[0]->Create(IDD_TAB_ONE,this); m_tabPages[0]->ShowWindow(SW_SHOW); m_tabPages[1]->Create(IDD_TAB_ONE,this); m_tabPages[1]->ShowWindow(SW_HIDE); m_tabPages[2]->Create(IDD_TAB_ONE, this); m_tabPages[2]->ShowWindow(SW_HIDE); m_tabPages[3]->Create(IDD_TAB_ONE, this); m_tabPages[3]->ShowWindow(SW_HIDE); m_tabPages[4]->Create(IDD_TAB_ONE, this); m_tabPages[4]->ShowWindow(SW_HIDE); m_tabPages[5]->Create(IDD_TAB_ONE, this); m_tabPages[5]->ShowWindow(SW_HIDE); m_tabPages[6]->Create(IDD_TAB_ONE, this); m_tabPages[6]->ShowWindow(SW_HIDE); m_tabPages[7]->Create(IDD_TAB_ONE, this); m_tabPages[7]->ShowWindow(SW_HIDE); SetRectangle(); } void CMyTabCtrl::SetRectangle() { CRect tabRect, itemRect; int nX, nY, nXc, nYc; GetClientRect(&tabRect); GetItemRect(0, &itemRect); nX=itemRect.left; nY=itemRect

                      N 1 Reply Last reply
                      0
                      • K KarstenK

                        you are mixing something that is buggy. Use some pointers to the approbiate objects. Press F1 for help or google it. Greetings from Germany

                        M Offline
                        M Offline
                        mohit 12
                        wrote on last edited by
                        #12

                        I Know it's buggy and that's y i am here to find solution and solve buggy code. thx tho.

                        K 1 Reply Last reply
                        0
                        • M mohit 12

                          I Know it's buggy and that's y i am here to find solution and solve buggy code. thx tho.

                          K Offline
                          K Offline
                          KarstenK
                          wrote on last edited by
                          #13

                          we have a saying: "Help yourself and so god will help you". you got to do your homeworks yourself Press F1 for help or google it. Greetings from Germany

                          M 1 Reply Last reply
                          0
                          • K KarstenK

                            we have a saying: "Help yourself and so god will help you". you got to do your homeworks yourself Press F1 for help or google it. Greetings from Germany

                            M Offline
                            M Offline
                            mohit 12
                            wrote on last edited by
                            #14

                            haha. I think that saying "" does WORK.. I was trying this since last week and finally today i solved it. GOD HELPED ME....It wasn't that easy though. But this is not the end yet..got some more problems to solve. Let the GOD help me for all of them :D:D

                            1 Reply Last reply
                            0
                            • M mohit 12

                              Hey, thx for your reply:D ok let me explain what i have done brifley, I Have 3 classes. First one is gphview which is formview based class which contains mytabctrl and on half window it contains some function of calculater(adding,multiply,subtract) Second one is mytabcontrol which holds 9 different tabs and create dialog for each tab Lastone is tab_one class which is dialog based class which draws the graphs according to tab selected. In first gphView class : void GphView::OnInitialUpdate( void) { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); m_tabMyTabCtrl.InsertItem(0, _T("Graph1")); m_tabMyTabCtrl.InsertItem(1, _T("Graph1")); m_tabMyTabCtrl.InsertItem(2, _T("Graph1")); m_tabMyTabCtrl.InsertItem(3, _T("Graph1")); m_tabMyTabCtrl.InsertItem(4, _T("Graph1")); m_tabMyTabCtrl.InsertItem(5, _T("Graph1")); m_tabMyTabCtrl.InsertItem(6, _T("Graph1")); m_tabMyTabCtrl.InsertItem(7, _T("Graph1(occupied)")); m_tabMyTabCtrl.Init(); } In mytabctrl class: CMyTabCtrl::CMyTabCtrl() { pTab = new CTab_one(this); // instance of tab_one class declared in header file CTab_one *pTab; } CMyTabCtrl::~CMyTabCtrl() { } void CMyTabCtrl::Init() { m_tabPages[0]=new CTab_one; // m_tabpages declared in header like this CDialog *m_tabPages[8]; m_tabPages[1]=new CTab_one; m_tabPages[2]=new CTab_one; m_tabPages[3]=new CTab_one; m_tabPages[4]=new CTab_one; m_tabPages[5]=new CTab_one; m_tabPages[6]=new CTab_one; m_tabPages[7]=new CTab_one; m_nNumberOfPages=8; m_tabCurrent=0; m_tabPages[0]->Create(IDD_TAB_ONE,this); m_tabPages[0]->ShowWindow(SW_SHOW); m_tabPages[1]->Create(IDD_TAB_ONE,this); m_tabPages[1]->ShowWindow(SW_HIDE); m_tabPages[2]->Create(IDD_TAB_ONE, this); m_tabPages[2]->ShowWindow(SW_HIDE); m_tabPages[3]->Create(IDD_TAB_ONE, this); m_tabPages[3]->ShowWindow(SW_HIDE); m_tabPages[4]->Create(IDD_TAB_ONE, this); m_tabPages[4]->ShowWindow(SW_HIDE); m_tabPages[5]->Create(IDD_TAB_ONE, this); m_tabPages[5]->ShowWindow(SW_HIDE); m_tabPages[6]->Create(IDD_TAB_ONE, this); m_tabPages[6]->ShowWindow(SW_HIDE); m_tabPages[7]->Create(IDD_TAB_ONE, this); m_tabPages[7]->ShowWindow(SW_HIDE); SetRectangle(); } void CMyTabCtrl::SetRectangle() { CRect tabRect, itemRect; int nX, nY, nXc, nYc; GetClientRect(&tabRect); GetItemRect(0, &itemRect); nX=itemRect.left; nY=itemRect

                              N Offline
                              N Offline
                              Niklas L
                              wrote on last edited by
                              #15

                              Please use the code block button when pasting code. It will make it readable. The code is roughly what I suggested. But I don't understand what

                              pTab = new CTab_one(this);

                              is doing i the contructor? What do you need that page for? And also it has to be deleted in the destructor. I suggest you declare it as CTab_one m_tab; in the class declaration instead. Also, there is a message for when the active tab is changed as per my last message. Relying on WM_LBUTTONDOWN is not enough, since one can navigate using keyboard. Was there a question in your last post? :)

                              home

                              M 1 Reply Last reply
                              0
                              • N Niklas L

                                Please use the code block button when pasting code. It will make it readable. The code is roughly what I suggested. But I don't understand what

                                pTab = new CTab_one(this);

                                is doing i the contructor? What do you need that page for? And also it has to be deleted in the destructor. I suggest you declare it as CTab_one m_tab; in the class declaration instead. Also, there is a message for when the active tab is changed as per my last message. Relying on WM_LBUTTONDOWN is not enough, since one can navigate using keyboard. Was there a question in your last post? :)

                                home

                                M Offline
                                M Offline
                                mohit 12
                                wrote on last edited by
                                #16

                                Hey, Thx a lot for your replies. I have already solved my problem for redrawing graph it was just small stupid pointer mistake i wasn't passing correct value and yeah thx for TCN_SELCHANGE message i was wondering about it but didn't have time to look at it. I will have to google how that works. Could you let me know how that works like what method it will call. and wat's exact message for that. Thx again, cheers from CANADA

                                N 1 Reply Last reply
                                0
                                • M mohit 12

                                  Hey, Thx a lot for your replies. I have already solved my problem for redrawing graph it was just small stupid pointer mistake i wasn't passing correct value and yeah thx for TCN_SELCHANGE message i was wondering about it but didn't have time to look at it. I will have to google how that works. Could you let me know how that works like what method it will call. and wat's exact message for that. Thx again, cheers from CANADA

                                  N Offline
                                  N Offline
                                  Niklas L
                                  wrote on last edited by
                                  #17

                                  The message description is here[^]. You can create a message handler for it in the resource editor, or using the properties->message window.

                                  home

                                  M 2 Replies Last reply
                                  0
                                  • N Niklas L

                                    The message description is here[^]. You can create a message handler for it in the resource editor, or using the properties->message window.

                                    home

                                    M Offline
                                    M Offline
                                    mohit 12
                                    wrote on last edited by
                                    #18

                                    got it working thx ..

                                    1 Reply Last reply
                                    0
                                    • N Niklas L

                                      The message description is here[^]. You can create a message handler for it in the resource editor, or using the properties->message window.

                                      home

                                      M Offline
                                      M Offline
                                      mohit 12
                                      wrote on last edited by
                                      #19

                                      Is there anyway i can resize my tabcontrol. like i wana have some feature like when you double click graph inside tab it will resize to mainwindow and when you double click again it will be back as normal window. I had couple of thoughts like creating frame for tabcontrol and another for rest of the form and then just deal with frame but didn't work. thx

                                      N 1 Reply Last reply
                                      0
                                      • M mohit 12

                                        Is there anyway i can resize my tabcontrol. like i wana have some feature like when you double click graph inside tab it will resize to mainwindow and when you double click again it will be back as normal window. I had couple of thoughts like creating frame for tabcontrol and another for rest of the form and then just deal with frame but didn't work. thx

                                        N Offline
                                        N Offline
                                        Niklas L
                                        wrote on last edited by
                                        #20

                                        Well, you could just resize it using SetWindowPos(), and then temporarily change the parent window to your CMainFrame I suppose. Another way might be to mimic the behavior of print preview, but without the printing so to speak.

                                        home

                                        M 1 Reply Last reply
                                        0
                                        • N Niklas L

                                          Well, you could just resize it using SetWindowPos(), and then temporarily change the parent window to your CMainFrame I suppose. Another way might be to mimic the behavior of print preview, but without the printing so to speak.

                                          home

                                          M Offline
                                          M Offline
                                          mohit 12
                                          wrote on last edited by
                                          #21

                                          Yet problem's not solved :confused:. Now you know I have two main class. calculator and tab_one(graphs). now calculator is formview and tab_one is dialog box. now everytime i change something in calculator i will need to redraw graphs in dialog box so i will call invalidate but dialog box will need to get new values from calculator, so i created instance of calculator in tab_one but everytime i call invalidate it creates new calculator and all values goes to default value thus not able to get new values. any clue ?

                                          N 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups