<?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[CScrollbar mit Create zu Laufzeit erst.]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine ScrollBar vom Typ CScrollbar zur Laufzeit erstellen, diese soll dann in ider Toolbar oder Dialogbar auftauchen.</p>
<p>Folgenden Code hab ich dafür verwendet:</p>
<pre><code>int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	if (!m_wndToolBar.CreateEx(this) ||	!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0(&quot;Symbolleiste konnte nicht erstellt werden\n&quot;);
		return -1;      // Fehler bei Erstellung
	}
	if (!m_wndDlgBar.Create(this, IDR_MAINFRAME, CBRS_ALIGN_ANY, AFX_IDW_DIALOGBAR))
	{
		TRACE0(&quot;Dialogleiste konnte nicht erstellt werden\n&quot;);
		return -1;		// Fehler bei Erstellung
	}
	if (!m_wndDlgBarState.Create(this, IDR_MAINFRAME_STATE, CBRS_ALIGN_ANY, AFX_IDW_DIALOGBAR))
	{
		TRACE0(&quot;Dialogleiste konnte nicht erstellt werden\n&quot;);
		return -1;		// Fehler bei Erstellung
	}

	if (!m_wndReBar.Create(this) ||
		!m_wndReBar.AddBar(&amp;m_wndToolBar,0,GetSysColor(COLOR_BTNFACE),NULL,RBBS_NOGRIPPER) ||
		!m_wndReBar.AddBar(&amp;m_wndDlgBarState,0,GetSysColor(COLOR_BTNFACE),NULL,RBBS_NOGRIPPER) ||
		!m_wndReBar.AddBar(&amp;m_wndDlgBar,0,GetSysColor(COLOR_BTNFACE),NULL,RBBS_NOGRIPPER))
	{
		TRACE0(&quot;Infoleiste konnte nicht erstellt werden\n&quot;);
		return -1;      // Fehler bei Erstellung
	}

	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0(&quot;Statusleiste konnte nicht erstellt werden\n&quot;);
		return -1;      // Fehler bei Erstellung
	}

         // ab hier kommt der scroller
	if (!m_wndScrollBar.Create(SBS_HORZ,CRect(450, 4, 550, 21),&amp;m_wndDlgBar,IDC_SCROLL)) { 
		TRACE0(&quot;Scroller konnte nicht erstellt werden\n&quot;);
		return -1;
	}
	m_wndScrollBar.ShowScrollBar();
	m_wndScrollBar.EnableScrollBar();

	// ZU ERLEDIGEN: Entfernen, wenn Sie keine QuickInfos wünschen
	m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
		CBRS_TOOLTIPS | CBRS_FLYBY);

	return 0;
}
</code></pre>
<p>so weit klappt auch alles, das Control ist da, man kann es steuern, aber wie bekomme ich eine response zurück.<br />
Mit &quot;ON_WM_HSCROLL&quot; bzw &quot;ON_WM_VSCROLL&quot; funktioniert es nicht.<br />
Ich denke mal das man das anders anpacken muß, aber wie?</p>
<p>also: Please help me! *g*</p>
<p>Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/73090/cscrollbar-mit-create-zu-laufzeit-erst</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 11:31:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/73090.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 May 2004 19:49:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CScrollbar mit Create zu Laufzeit erst. on Wed, 05 May 2004 19:49:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine ScrollBar vom Typ CScrollbar zur Laufzeit erstellen, diese soll dann in ider Toolbar oder Dialogbar auftauchen.</p>
<p>Folgenden Code hab ich dafür verwendet:</p>
<pre><code>int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	if (!m_wndToolBar.CreateEx(this) ||	!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0(&quot;Symbolleiste konnte nicht erstellt werden\n&quot;);
		return -1;      // Fehler bei Erstellung
	}
	if (!m_wndDlgBar.Create(this, IDR_MAINFRAME, CBRS_ALIGN_ANY, AFX_IDW_DIALOGBAR))
	{
		TRACE0(&quot;Dialogleiste konnte nicht erstellt werden\n&quot;);
		return -1;		// Fehler bei Erstellung
	}
	if (!m_wndDlgBarState.Create(this, IDR_MAINFRAME_STATE, CBRS_ALIGN_ANY, AFX_IDW_DIALOGBAR))
	{
		TRACE0(&quot;Dialogleiste konnte nicht erstellt werden\n&quot;);
		return -1;		// Fehler bei Erstellung
	}

	if (!m_wndReBar.Create(this) ||
		!m_wndReBar.AddBar(&amp;m_wndToolBar,0,GetSysColor(COLOR_BTNFACE),NULL,RBBS_NOGRIPPER) ||
		!m_wndReBar.AddBar(&amp;m_wndDlgBarState,0,GetSysColor(COLOR_BTNFACE),NULL,RBBS_NOGRIPPER) ||
		!m_wndReBar.AddBar(&amp;m_wndDlgBar,0,GetSysColor(COLOR_BTNFACE),NULL,RBBS_NOGRIPPER))
	{
		TRACE0(&quot;Infoleiste konnte nicht erstellt werden\n&quot;);
		return -1;      // Fehler bei Erstellung
	}

	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0(&quot;Statusleiste konnte nicht erstellt werden\n&quot;);
		return -1;      // Fehler bei Erstellung
	}

         // ab hier kommt der scroller
	if (!m_wndScrollBar.Create(SBS_HORZ,CRect(450, 4, 550, 21),&amp;m_wndDlgBar,IDC_SCROLL)) { 
		TRACE0(&quot;Scroller konnte nicht erstellt werden\n&quot;);
		return -1;
	}
	m_wndScrollBar.ShowScrollBar();
	m_wndScrollBar.EnableScrollBar();

	// ZU ERLEDIGEN: Entfernen, wenn Sie keine QuickInfos wünschen
	m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
		CBRS_TOOLTIPS | CBRS_FLYBY);

	return 0;
}
</code></pre>
<p>so weit klappt auch alles, das Control ist da, man kann es steuern, aber wie bekomme ich eine response zurück.<br />
Mit &quot;ON_WM_HSCROLL&quot; bzw &quot;ON_WM_VSCROLL&quot; funktioniert es nicht.<br />
Ich denke mal das man das anders anpacken muß, aber wie?</p>
<p>also: Please help me! *g*</p>
<p>Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/515028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/515028</guid><dc:creator><![CDATA[Three.dee]]></dc:creator><pubDate>Wed, 05 May 2004 19:49:30 GMT</pubDate></item><item><title><![CDATA[Reply to CScrollbar mit Create zu Laufzeit erst. on Thu, 06 May 2004 07:37:29 GMT]]></title><description><![CDATA[<p>Eine Nacht darüber geschlafen, und von der Lösung geträumt *g*.</p>
<p>Nach einigen logischen Überlegungen kam ich auf die Idee, die OnHScroll Methode von der CDialogBar in einer neuen Klasse (geerbt von CDialogBar) zu überladen. Funktioniert.</p>
<p>trotzdem Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/515165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/515165</guid><dc:creator><![CDATA[Three.dee]]></dc:creator><pubDate>Thu, 06 May 2004 07:37:29 GMT</pubDate></item></channel></rss>