摘要:本文主要向大家介绍了VC编程之VC下滚动条消息处理,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
本文主要向大家介绍了VC编程之VC下滚动条消息处理,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
在对话框里加入滚动条,实现滚动效果,想了个简单的调试滚动条消息的方法,先记录下
char * GetScrollText(UINT nSBCode)
{
switch(nSBCode)
{
case SB_ENDSCROLL: // End scroll.
return "结束滚动";
case SB_LINEDOWN: // Scroll one line down.
return "向下一行";
case SB_LINEUP: // Scroll one line up.
return "向上一行";
case SB_PAGEDOWN: // Scroll one page down.
return "向下翻页";
case SB_PAGEUP: // Scroll one page up.
return "向上翻页";
case SB_THUMBPOSITION: // Scroll to the absolute position. The current position is provided in nPos.
return "滚动到绝对位置,当前位置由nPos给出";
case SB_THUMBTRACK: // Drag scroll box to specified position. The current position is provided in nPos.
return "拖动到设定位置,当前位置由nPos给出";
case SB_BOTTOM: // Scroll to bottom.
return "滚动到底部";
case SB_TOP: // Scroll to top.
return "滚动到顶部";
default:
return "其他动作";
}
}
void CChannelSetDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
char str[512] = { 0 };
int nCurPos = GetScrollPos(SB_VERT);
int nOffset = 0;
int i = 0;
int nMix, nMax;
bool bDid = false;
SCROLLINFO scrollInfo;
GetScrollInfo(SB_VERT, &scrollInfo);
nMix = scrollInfo.nMin, nMax = scrollInfo.nMax;
sprintf( str, "OnVScroll(UINT %s, UINT %d, GetScrollPos = %d\n", GetScrollText(nSBCode), nPos, nCurPos );
OutputDebugString(str);
switch(nSBCode)
{
case SB_ENDSCROLL: // End scroll.
bDid = true;
break;
case SB_LINEDOWN: // Scroll one line down.
if( nMax == nCurPos )
break;
nOffset = 10;
bDid = true;
break;
case SB_LINEUP: // Scroll one line up.
if( nMix == nCurPos )
break;
nOffset = -10;
bDid = true;
break;
case SB_PAGEDOWN: // Scroll one page down.
nOffset = m_nScrollPageSize;
bDid = true;
break;
case SB_PAGEUP: // Scroll one page up.
nOffset = -m_nScrollPageSize;
bDid = true;
break;
case SB_THUMBPOSITION: // Scroll to the absolute position. The current position is provided in nPos.
nOffset = nPos - nCurPos;
bDid = true;
break;
case SB_THUMBTRACK: // Drag scroll box to specified position. The current position is provided in nPos.
nOffset = nPos- nCurPos;
bDid = true;
break;
}
nCurPos += nOffset;
SetScrollPos(SB_VERT, nCurPos);
if( true == bDid)
{
for( i = 0; i < m_arrayChannelCtrl.GetSize(); i++ )
{
CChannelCtrl * pChannelCtrl = m_arrayChannelCtrl.GetAt(i);
pChannelCtrl->MoveWindow(this, -nOffset);
};
}
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
以上就介绍了VC/MFC的学习,希望对VC/MFC有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言VC/MFC频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号