我试图创建使用Microsoft基础类库的ActiveX控件。
我创建了控制。 这是一个图形控制。 我已经把一些按钮上的控制为好。
我想一个滚动条添加到使用我的控制CScrollBar
类。
我创建使用控制CScrollBar::Create
方法。 我可以看到控制应用程序中使用我的ActiveX控件时。
我已经加入了OnHScroll
方法,我的控制类。 这来自于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中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);