hi iam facing a debug problem .This is because of splitter only .I am having One row & 2 columns.But when iam running my program it is giving me runtime error ie DEBUG ASSERTION FAILED from c:...../mfc/winsplitt.cpp Problem where iam facing i have marked it with bold in below code Code: BOOL CSplitter_Main::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { if(!m_wndSplitter.CreateStatic(this, 2, 1)) //, // TODO: adjust the number of rows, columns { return FALSE ; } if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CEntityTreeView), CSize(170, 550), pContext)) { TRACE0("Failed to create second pane\n"); return FALSE; } // add the second splitter pane - the default view in row 1 if (!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CScenGenView), CSize(150,550), pContext)) { TRACE0("Failed to create first pane\n"); return FALSE; } m_wndSplitter1.CreateStatic(&m_wndSplitter, 2,1 , WS_CHILD|WS_VISIBLE|WS_BORDER|WS_MAXIMIZE, AFX_IDW_PANE_FIRST ) ; // add the first splitter pane - an input view in row 0 [B] if (!m_wndSplitter1.CreateView(0,0, RUNTIME_CLASS(CEntityListView), CSize(150,550), pContext)) { TRACE0("Failed to create first pane\n"); return FALSE; }[/B] SetActiveView((CView*)m_wndSplitter.GetPane(0,1)); return TRUE; }
Hi I am able to rectify the problem . But now I am facing one more problem ,My values are not getting updated properly in my mfc application .I meant on my window values are getting updated only when iam minimizing my window screen or seeing other application & then coming back to my mfc application .I tried Invalidate & invalidateRect also but still facing same problem
HI Again Updation is happening properly now . But mySplitter which is divided into 1 row & 2 column ,2nd column is facing problem .Whenever iam running my mfc application, 2nd column is showing the background of the desktop,or if my application code is behind it is displaying that.When iam adjusting other pane then its coming alright . Do u have any solution
Ya i tried Invalidate but it is not happening ,one thing i Observed that if(!m_wndSplitter1.CreateView(1,0,RUNTIME_CLASS(CEntityListView),CSize(0,100),pContext)) the size specified in CSize() is not having any effect ,is it because of this
ya when i run mfc applcation & i min or max windows it is happening.But on the code size when i am specifying the CSize it is not increasing or decresing
If it happens when you Min Max then its about repainting issue and not the problem about the size not taking effect.
Then how should I solve this problem ,I have used Invalidate to the specfic region but still its creating problem
Try Invalidating the entire window because it looks like the paint is not being called if you are invalidating it as well.
Ya i tried to invalidate on main window same problem is coming as well as my CPU usage increase to 50 to 51%
Try using OutputDebugString and see if the paint of splitter is called after you call the Invalidate.