CScrollbar mit Create zu Laufzeit erst.
-
Hallo,
ich möchte eine ScrollBar vom Typ CScrollbar zur Laufzeit erstellen, diese soll dann in ider Toolbar oder Dialogbar auftauchen.
Folgenden Code hab ich dafür verwendet:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Symbolleiste konnte nicht erstellt werden\n"); return -1; // Fehler bei Erstellung } if (!m_wndDlgBar.Create(this, IDR_MAINFRAME, CBRS_ALIGN_ANY, AFX_IDW_DIALOGBAR)) { TRACE0("Dialogleiste konnte nicht erstellt werden\n"); return -1; // Fehler bei Erstellung } if (!m_wndDlgBarState.Create(this, IDR_MAINFRAME_STATE, CBRS_ALIGN_ANY, AFX_IDW_DIALOGBAR)) { TRACE0("Dialogleiste konnte nicht erstellt werden\n"); return -1; // Fehler bei Erstellung } if (!m_wndReBar.Create(this) || !m_wndReBar.AddBar(&m_wndToolBar,0,GetSysColor(COLOR_BTNFACE),NULL,RBBS_NOGRIPPER) || !m_wndReBar.AddBar(&m_wndDlgBarState,0,GetSysColor(COLOR_BTNFACE),NULL,RBBS_NOGRIPPER) || !m_wndReBar.AddBar(&m_wndDlgBar,0,GetSysColor(COLOR_BTNFACE),NULL,RBBS_NOGRIPPER)) { TRACE0("Infoleiste konnte nicht erstellt werden\n"); return -1; // Fehler bei Erstellung } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Statusleiste konnte nicht erstellt werden\n"); return -1; // Fehler bei Erstellung } // ab hier kommt der scroller if (!m_wndScrollBar.Create(SBS_HORZ,CRect(450, 4, 550, 21),&m_wndDlgBar,IDC_SCROLL)) { TRACE0("Scroller konnte nicht erstellt werden\n"); 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; }so weit klappt auch alles, das Control ist da, man kann es steuern, aber wie bekomme ich eine response zurück.
Mit "ON_WM_HSCROLL" bzw "ON_WM_VSCROLL" funktioniert es nicht.
Ich denke mal das man das anders anpacken muß, aber wie?also: Please help me! *g*
Vielen Dank.
-
Eine Nacht darüber geschlafen, und von der Lösung geträumt *g*.
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.
trotzdem Danke.