<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[CTabCtrl &amp;quot;ferngesteuert&amp;quot; umblättern]]></title><description><![CDATA[<p>hi, ich kämpfe mal wieder mit dem CTabCtrl. Wie kann ich vom einem CDialog der die Seite 1 des CTabCtrl darstellt mit einem CButton.click dem CTabCtrl anweisen auf die Seite 2 umzublättern und den entsprechenden CDialog anzuzeigen.<br />
(also es soll genau das passieren, wie wenn ich selbst auf den Reiter2 geclickt hätte.)</p>
<p>was ist hier der einfachste weg?<br />
geht es nur über WM_NOTIFY?<br />
und wie genau müßte der code hierfür aussehen?</p>
<p>vielen dank für eure hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178372/ctabctrl-quot-ferngesteuert-quot-umblättern</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 13:07:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178372.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Apr 2007 18:45:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CTabCtrl &amp;quot;ferngesteuert&amp;quot; umblättern on Tue, 10 Apr 2007 18:45:09 GMT]]></title><description><![CDATA[<p>hi, ich kämpfe mal wieder mit dem CTabCtrl. Wie kann ich vom einem CDialog der die Seite 1 des CTabCtrl darstellt mit einem CButton.click dem CTabCtrl anweisen auf die Seite 2 umzublättern und den entsprechenden CDialog anzuzeigen.<br />
(also es soll genau das passieren, wie wenn ich selbst auf den Reiter2 geclickt hätte.)</p>
<p>was ist hier der einfachste weg?<br />
geht es nur über WM_NOTIFY?<br />
und wie genau müßte der code hierfür aussehen?</p>
<p>vielen dank für eure hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263241</guid><dc:creator><![CDATA[thinux]]></dc:creator><pubDate>Tue, 10 Apr 2007 18:45:09 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl &amp;quot;ferngesteuert&amp;quot; umblättern on Tue, 10 Apr 2007 19:18:15 GMT]]></title><description><![CDATA[<p>du must dir in der Klasse die die Tabcontrols erstellt &amp; kontroliert eine Funktion zulegen mit der du die einzelnen Dialoge an &amp; ausschaltest. ich kopier dir hier mal schnell die funktion rein wie ich es gamcht hab.</p>
<p>in der header</p>
<pre><code>CDialog *m_pDialogs[3]; 
CTableDlg3 m_TableDlg3; 
CTableDlg2 m_TableDlg2; 
CTableDlg1 m_TableDlg1; 
int m_PreviousTab;
</code></pre>
<p>in der cpp</p>
<pre><code>CTableCtrl::CTableCtrl(): m_PreviousTab(0)
{ 
    m_pDialogs[0] = &amp;m_TableDlg1; 
    m_pDialogs[1] = &amp;m_TableDlg2; 
    m_pDialogs[2] = &amp;m_TableDlg3; 
} 
... 
void CTableCtrl::SetActiveTab(int nTab) 
{ 
/*****************************************************************************
     WECHSELT AUF DEN NÄCHSTEN DIALOGE 
*****************************************************************************/
    if (m_PreviousTab == nTab) return; 

    m_pDialogs[m_PreviousTab]-&gt;EnableWindow(FALSE); 
    m_pDialogs[m_PreviousTab]-&gt;ShowWindow(SW_HIDE); 

    m_PreviousTab = nTab; 

    SetCurSel(m_PreviousTab); 

    m_pDialogs[m_PreviousTab]-&gt;EnableWindow(TRUE); 
    m_pDialogs[m_PreviousTab]-&gt;ShowWindow(SW_SHOW); 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1263269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263269</guid><dc:creator><![CDATA[LowFly]]></dc:creator><pubDate>Tue, 10 Apr 2007 19:18:15 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl &amp;quot;ferngesteuert&amp;quot; umblättern on Tue, 10 Apr 2007 19:41:58 GMT]]></title><description><![CDATA[<p>wunderbar! danke. das ist was ich gesucht hab. habs ein wenig umgebaut, so dass ich den Code in den CDialog1 schreiben kann. (da ich es nur dort brauche)</p>
<p>das ganze sieht dann so aus:</p>
<pre><code class="language-cpp">CMainFrame* pMainFrm = (CMainFrame*)AfxGetMainWnd();

pMainFrm-&gt;pTaskTabCtrl-&gt;TabDlg[0]-&gt;EnableWindow(FALSE);
pMainFrm-&gt;pTaskTabCtrl-&gt;TabDlg[0]-&gt;ShowWindow(SW_HIDE);

pMainFrm-&gt;pTaskTabCtrl-&gt;m_TabCtrl-&gt;SetCurSel(1);

pMainFrm-&gt;pTaskTabCtrl-&gt;TabDlg[1]-&gt;EnableWindow(TRUE);
pMainFrm-&gt;pTaskTabCtrl-&gt;TabDlg[1]-&gt;ShowWindow(SW_SHOW);
</code></pre>
<p>jedoch erscheint der CDialog2 nach dem &quot;automatischen&quot; umblättern an einer anderen Position (er ragt oben in die Reiter und überdeckt sie).</p>
<p>so sehen OnTabSelChanging und OnTabSelChange aus:</p>
<pre><code class="language-cpp">void CTaskTab::OnTabSelChanging(NMHDR *pnmhdr, LRESULT *pResult)
{
	int sel_index = m_TabCtrl-&gt;GetCurSel();
	m_DlgArray[sel_index]-&gt;ShowWindow(SW_HIDE);
	*pResult = false;

}

void CTaskTab::OnTabSelChange(NMHDR *pnmhdr, LRESULT *pResult)
{
	RECT rc;
	m_TabCtrl-&gt;GetItemRect(0, &amp;rc);

	int sel_index = m_TabCtrl-&gt;GetCurSel();
	m_DlgArray[sel_index]-&gt;SetWindowPos(NULL, rc.left, rc.bottom - 5, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW);

	m_DlgArray[sel_index]-&gt;SetFocus();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1263294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263294</guid><dc:creator><![CDATA[thinux]]></dc:creator><pubDate>Tue, 10 Apr 2007 19:41:58 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl &amp;quot;ferngesteuert&amp;quot; umblättern on Tue, 10 Apr 2007 19:48:02 GMT]]></title><description><![CDATA[<p>Du must die Dialoge mit der ON_WM_SIZE Funktion in der Klasse die die Dialoge kontroliert neu positionieren.</p>
<p>NEW EDIT:<br />
denke das ist die Klasse CTaskTab bei dir</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263299</guid><dc:creator><![CDATA[LowFly]]></dc:creator><pubDate>Tue, 10 Apr 2007 19:48:02 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl &amp;quot;ferngesteuert&amp;quot; umblättern on Tue, 10 Apr 2007 19:58:36 GMT]]></title><description><![CDATA[<p>ok. hab mich geirrt: der dialog erscheint richtig... (hatte da noch einen anderen fehler)</p>
<p>jedoch habe ich jetzt die zeilen:</p>
<pre><code class="language-cpp">pMainFrm-&gt;pTaskTabCtrl-&gt;TabDlg[0]-&gt;EnableWindow(FALSE);

...und....

pMainFrm-&gt;pTaskTabCtrl-&gt;TabDlg[1]-&gt;EnableWindow(TRUE);
</code></pre>
<p>entfernt.<br />
Zeile 1 bewirkt das der Dialog mit einem Mausklick danach zwar wieder angezeigt werden kann, aber eben Disabled bleibt (=keine Funktion)<br />
Zeile 2 ist überflüssig (in meinem Fall, da die Dialoge alle immer Enable sind.</p>
<p>Danke dir LowFly .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263311</guid><dc:creator><![CDATA[thinux]]></dc:creator><pubDate>Tue, 10 Apr 2007 19:58:36 GMT</pubDate></item></channel></rss>