<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="https://syndication.webwiz.net/rss_namespace/">
 <channel>
  <title>Codejock Developer Community : Bug in CXTSplitterWnd</title>
  <link>http://forum.codejock.com/</link>
  <description><![CDATA[This is an XML content feed of; Codejock Developer Community : Toolkit Pro : Bug in CXTSplitterWnd]]></description>
  <copyright>Copyright (c) 2006-2013 Web Wiz Forums - All Rights Reserved.</copyright>
  <pubDate>Sun, 05 Apr 2026 15:28:14 +0000</pubDate>
  <lastBuildDate>Thu, 02 Nov 2006 05:42:57 +0000</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 12.04</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>forum.codejock.com/RSS_post_feed.asp?TID=5406</WebWizForums:feedURL>
  <image>
   <title><![CDATA[Codejock Developer Community]]></title>
   <url>http://forum.codejock.com/forum_images/codejock-logo.gif</url>
   <link>http://forum.codejock.com/</link>
  </image>
  <item>
   <title><![CDATA[Bug in CXTSplitterWnd : I tried to replace the CXTSplitterWnd::ShowRow()...]]></title>
   <link>http://forum.codejock.com/forum_posts.asp?TID=5406&amp;PID=16944&amp;title=bug-in-cxtsplitterwnd#16944</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://forum.codejock.com/member_profile.asp?PF=2439">SunMarc</a><br /><strong>Subject:</strong> 5406<br /><strong>Posted:</strong> 02 November 2006 at 5:42am<br /><br />I tried to replace the CXTSplitterWnd::ShowRow() and CXTSplitterWnd::HideRow() methods in the XTP 1030<br>with the same methods in the XTP 9.7.<br>I recompiled XTP 1030 project and the pb is fixed...<br><br><br>If it can help, here is the 1030 and 9.7 code for these methods:<br><br>1030 :<br>====<br><br>void CXTSplitterWnd::ShowRow()<br>{<br>&nbsp;&nbsp;&nbsp; ASSERT_VALID(this);<br>&nbsp;&nbsp;&nbsp; if (m_nRows == m_nMaxRows &amp;&amp; m_nHiddenRow == -1)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ASSERT(m_nHiddenRow != -1);<br><br>&nbsp;&nbsp;&nbsp; int nShowRow = m_nHiddenRow;<br>&nbsp;&nbsp;&nbsp; m_nHiddenRow = -1;<br><br>&nbsp;&nbsp;&nbsp; int cyNew = m_pRowInfo&#091;m_nRows&#093;.nCurSize;<br>&nbsp;&nbsp;&nbsp; m_nRows++;&nbsp; // add a nRow<br><br>&nbsp;&nbsp;&nbsp; ASSERT(m_nRows == m_nMaxRows);<br><br>&nbsp;&nbsp;&nbsp; int nRow;<br><br>&nbsp;&nbsp;&nbsp; // Show the hidden nRow<br>&nbsp;&nbsp;&nbsp; int nCol;<br>&nbsp;&nbsp;&nbsp; for (nCol = 0; nCol &lt; m_nCols; ++nCol)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CWnd* pPaneShow = GetDlgItem(AFX_IDW_PANE_FIRST + m_nRows * 16 + nCol);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ASSERT(pPaneShow != NULL);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPaneShow-&gt;ShowWindow(SW_SHOWNA);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (nRow = m_nRows - 2; nRow &gt;= nShowRow; --nRow)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CWnd* pPane = GetPane(nRow, nCol);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ASSERT(pPane != NULL);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPane-&gt;SetDlgCtrlID(IdFromRowCol(nRow + 1, nCol));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPaneShow-&gt;SetDlgCtrlID(IdFromRowCol(nShowRow, nCol));<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; // new panes have been created -- recalculate layout<br>&nbsp;&nbsp;&nbsp; for (nRow = nShowRow + 1; nRow &lt; m_nRows; nRow++)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_pRowInfo&#091;nRow&#093;.nIdealSize = m_pRowInfo&#091;nRow - 1&#093;.nCurSize;<br><br>&nbsp;&nbsp;&nbsp; m_pRowInfo&#091;nShowRow&#093;.nIdealSize = cyNew;<br>&nbsp;&nbsp;&nbsp; RecalcLayout();<br>}<br><br>void CXTSplitterWnd::HideRow(int nRowHide)<br>{<br>&nbsp;&nbsp;&nbsp; ASSERT_VALID(this);<br>&nbsp;&nbsp;&nbsp; if (m_nHiddenRow != -1)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // return if the requested one is hidden<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (m_nHiddenRow == nRowHide)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ShowRow();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ASSERT(m_nRows &gt; 1);<br>&nbsp;&nbsp;&nbsp; ASSERT(nRowHide &lt; m_nRows);<br>&nbsp;&nbsp;&nbsp; ASSERT(m_nHiddenRow == -1);<br>&nbsp;&nbsp;&nbsp; m_nHiddenRow = nRowHide;<br><br>&nbsp;&nbsp;&nbsp; int nActiveRow, nActiveCol;<br><br>&nbsp;&nbsp;&nbsp; // if the nRow has an active window -- change it<br>&nbsp;&nbsp;&nbsp; if (GetActivePane(&amp;nActiveRow, &amp;nActiveCol) != NULL)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (nActiveRow == nRowHide)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (++nActiveRow &gt;= m_nRows)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; nActiveRow = 0;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SetActivePane(nActiveRow, nActiveCol);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; // hide all nRow panes.<br>&nbsp;&nbsp;&nbsp; int nCol;<br>&nbsp;&nbsp;&nbsp; for (nCol = 0; nCol &lt; m_nCols; ++nCol)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CWnd* pPaneHide = GetPane(nRowHide, nCol);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ASSERT(pPaneHide != NULL);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPaneHide-&gt;ShowWindow(SW_HIDE);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPaneHide-&gt;SetDlgCtrlID(AFX_IDW_PANE_FIRST + m_nRows * 16 + nCol);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int nRow;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (nRow = nRowHide + 1; nRow &lt; m_nRows; ++nRow)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CWnd* pPane = GetPane(nRow, nCol);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ASSERT(pPane != NULL);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPane-&gt;SetDlgCtrlID(IdFromRowCol(nRow-1, nCol));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; m_nRows--;<br>&nbsp;&nbsp;&nbsp; m_pRowInfo&#091;m_nRows&#093;.nCurSize = m_pRowInfo&#091;nRowHide&#093;.nCurSize;<br>&nbsp;&nbsp;&nbsp; RecalcLayout();<br>}<br><br><br>9.7 :<br>===<br><br>void CXTSplitterWnd::ShowRow()<br>{<br>&nbsp;&nbsp;&nbsp; ASSERT_VALID( this );<br>&nbsp;&nbsp;&nbsp; if ( m_nRows == m_nMaxRows &amp;&amp; m_nHiddenRow == -1)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ASSERT( m_nHiddenRow != -1 );<br><br>&nbsp;&nbsp;&nbsp; int nShowRow = m_nHiddenRow;<br>&nbsp;&nbsp;&nbsp; m_nHiddenRow = -1;<br><br>&nbsp;&nbsp;&nbsp; int cyNew = m_pRowInfo&#091;m_nRows&#093;.nCurSize;<br>&nbsp;&nbsp;&nbsp; m_nRows++;&nbsp; // add a nRow<br><br>&nbsp;&nbsp;&nbsp; ASSERT( m_nRows == m_nMaxRows );<br><br>&nbsp;&nbsp;&nbsp; int nRow;<br><br>&nbsp;&nbsp;&nbsp; // Show the hidden nRow<br>&nbsp;&nbsp;&nbsp; int nCol;<br>&nbsp;&nbsp;&nbsp; for ( nCol = 0; nCol &lt; m_nCols; ++nCol )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CWnd* pPaneShow = GetDlgItem( AFX_IDW_PANE_FIRST + nCol * 16 + m_nRows );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ASSERT( pPaneShow != NULL );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPaneShow-&gt;ShowWindow( SW_SHOWNA );<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for ( nRow = m_nRows - 2; nRow &gt;= nShowRow; --nRow )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CWnd* pPane = GetPane( nRow, nCol );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ASSERT( pPane != NULL );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPane-&gt;SetDlgCtrlID( IdFromRowCol( nRow + 1, nCol ));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPaneShow-&gt;SetDlgCtrlID( IdFromRowCol( nShowRow, nCol ));<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; // new panes have been created -- recalculate layout<br>&nbsp;&nbsp;&nbsp; for ( nRow = nShowRow+1; nRow &lt; m_nRows; nRow++ )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_pRowInfo&#091;nRow&#093;.nIdealSize = m_pRowInfo&#091;nRow - 1&#093;.nCurSize;<br><br>&nbsp;&nbsp;&nbsp; m_pRowInfo&#091;nShowRow&#093;.nIdealSize = cyNew;<br>&nbsp;&nbsp;&nbsp; RecalcLayout();<br>}<br><br>void CXTSplitterWnd::HideRow(int nRowHide)<br>{<br>&nbsp;&nbsp;&nbsp; ASSERT_VALID( this );<br>&nbsp;&nbsp;&nbsp; if (m_nHiddenRow != -1)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // return if the requested one is hidden<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (m_nHiddenRow == nRowHide)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ShowRow();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ASSERT( m_nRows &gt; 1 );<br>&nbsp;&nbsp;&nbsp; ASSERT( nRowHide &lt; m_nRows );<br>&nbsp;&nbsp;&nbsp; ASSERT( m_nHiddenRow == -1 );<br>&nbsp;&nbsp;&nbsp; m_nHiddenRow = nRowHide;<br><br>&nbsp;&nbsp;&nbsp; int nActiveRow, nActiveCol;<br><br>&nbsp;&nbsp;&nbsp; // if the nRow has an active window -- change it<br>&nbsp;&nbsp;&nbsp; if( GetActivePane( &amp;nActiveRow, &amp;nActiveCol ) != NULL )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( nActiveRow == nRowHide )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( ++nActiveRow &gt;= m_nRows )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; nActiveRow = 0;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SetActivePane( nActiveRow, nActiveCol );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; // hide all nRow panes.<br>&nbsp;&nbsp;&nbsp; int nCol;<br>&nbsp;&nbsp;&nbsp; for ( nCol = 0; nCol &lt; m_nCols; ++nCol )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CWnd* pPaneHide = GetPane( nRowHide, nCol );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ASSERT( pPaneHide != NULL );<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPaneHide-&gt;ShowWindow( SW_HIDE );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPaneHide-&gt;SetDlgCtrlID( AFX_IDW_PANE_FIRST + nCol * 16 + m_nRows );<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int nRow;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for ( nRow = nRowHide+1; nRow &lt; m_nRows; ++nRow )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CWnd* pPane = GetPane( nRow, nCol );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ASSERT( pPane != NULL );<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pPane-&gt;SetDlgCtrlID( IdFromRowCol( nRow-1, nCol ));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; m_nRows--;<br>&nbsp;&nbsp;&nbsp; m_pRowInfo&#091;m_nRows&#093;.nCurSize = m_pRowInfo&#091;nRowHide&#093;.nCurSize;<br>&nbsp;&nbsp;&nbsp; RecalcLayout();<br>}<br><br><br><br><br>]]>
   </description>
   <pubDate>Thu, 02 Nov 2006 05:42:57 +0000</pubDate>
   <guid isPermaLink="true">http://forum.codejock.com/forum_posts.asp?TID=5406&amp;PID=16944&amp;title=bug-in-cxtsplitterwnd#16944</guid>
  </item> 
  <item>
   <title><![CDATA[Bug in CXTSplitterWnd : Hello,I was using a CXTSplitterWnd...]]></title>
   <link>http://forum.codejock.com/forum_posts.asp?TID=5406&amp;PID=16943&amp;title=bug-in-cxtsplitterwnd#16943</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://forum.codejock.com/member_profile.asp?PF=2439">SunMarc</a><br /><strong>Subject:</strong> 5406<br /><strong>Posted:</strong> 02 November 2006 at 5:25am<br /><br />Hello,<br><br><br>I was using a CXTSplitterWnd in my App with<br>the XTP 9.7 and all worked fine.<br>I'm now using the 1030 and my App crashes if:<br><br>I hide the 1st row<br>I hide the 1st column<br>I show the 1st row<br>I show the 1st column =&gt; Assert in :<br><br>BOOL CWnd::ShowWindow(int nCmdShow)<br>{<br>&nbsp;&nbsp;&nbsp; ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));<br><br>&nbsp;&nbsp;&nbsp; if (m_pCtrlSite == NULL)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return ::ShowWindow(m_hWnd, nCmdShow);<br>&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return m_pCtrlSite-&gt;ShowWindow(nCmdShow);<br>}<br><br><br>I tried with the SplitterWindow sample and I get the same pb!!<br><br><br>The code has been modified in the CXTSplitterWnd::ShowRow()<br>method since the 9.7 version...&nbsp; any idea?<br><br>Thanks.<br><br><br><br><br><br>]]>
   </description>
   <pubDate>Thu, 02 Nov 2006 05:25:33 +0000</pubDate>
   <guid isPermaLink="true">http://forum.codejock.com/forum_posts.asp?TID=5406&amp;PID=16943&amp;title=bug-in-cxtsplitterwnd#16943</guid>
  </item> 
 </channel>
</rss>