Microsoft Foundation Class Library を使用して ActiveX コントロールを作成しようとしています。
コントロールを作成しました。グラフコントロールです。コントロールにもいくつかのボタンを配置しました。
CScrollBar
クラスを使用してコントロールにスクロールバーを追加しようとしています。
CScrollBar::Create
メソッドを使用してコントロールを作成します。アプリケーションで ActiveX コントロールを使用すると、コントロールが表示されます。
OnHScroll
メソッドをコントロール クラスに追加しました。これは class から派生しCOleControl
ます。
CScrollBar::GetScrollPos
スクロールするときは、常にゼロを返すスクロール位置を取得するために使用します。
以下は、activeX コントロールでスクロールバーを作成するためのコードです。
MainClass.h ファイルのコントロールのコード:
private:
CScrollBar m_HScrollBar;
protected:
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
DECLARE_MESSAGE_MAP()
スクロールバーを作成するメソッドのMainClass.cpp の Control のコードOnCreate()
:
m_HScrollBar.Create(SBS_HORZ | WS_CHILD| WS_VISIBLE , CRect(rcBottomStrip.left ,
rcBottomStrip.bottom ,
rcBottomStrip.right ,
rcBottomStrip.bottom + (tHeight*3)/125),this, 315);
m_HScrollBar.SetScrollRange(0, 2048);
SCROLLINFO ScrollInfo;
ScrollInfo.cbSize = sizeof(ScrollInfo);
ScrollInfo.fMask = SIF_RANGE;
ScrollInfo.nMin = 0;
ScrollInfo.nMax = 1128;
ScrollInfo.nPage = 100;
ScrollInfo.nPos = 0;
ScrollInfo.nTrackPos = 0;
m_HScrollBar.SetScrollInfo(&ScrollInfo);
m_HScrollBar.ShowScrollBar(TRUE);
m_HScrollBar.EnableWindow();
m_HScrollBar.EnableAutomation();
スクロール位置を返し、OnHScroll
スクロールバーを移動する方法:
int CurPos = m_HScrollBar.GetScrollPos();
m_HScrollBar.SetScrollPos(CurPos);