关于VC++ 6.0中 无法为一个滚动条添加消息映射的菜鸟问题 80

本人利用MFC写了一个对话框里面有个水平滚动条想要对WM_HSCROLL进行消息映射但是发现很奇怪的问题在VC++6.0的类向导里发现对应于水平滚动条ID的消息居然没有~... 本人利用MFC写了一个对话框 里面有个水平滚动条 想要对WM_HSCROLL 进行消息映射 但是发现很奇怪的问题
在VC++ 6.0的类向导里 发现对应于水平滚动条ID的消息居然没有~!我根本无法消息映射 高手救命啊~!
展开
 我来答 举报
silvergingko
2009-03-08 · TA获得超过5945个赞
知道小有建树答主
回答量:688
采纳率:0%
帮助的人:869万
展开全部
就是添加窗口的WM_HSCROLL消息,没有专门的滚动条的。
如果要区分是由于窗口自己的滚动条还是专门的滚动条,就直接在消息响应函数里判断。它有3个参数,最后一个参数就是发出WM_HSCROLL消息的滚动条。如果是窗口自己滚动条发出的,该参数为NULL。
火驹
2009-03-08 · TA获得超过1447个赞
知道小有建树答主
回答量:6294
采纳率:0%
帮助的人:1721万
展开全部
//垂直滚动条发出的通知消息是WM_VSCROLL
//nSBCode是一个标志值,说明用户对滚动条的操作类型...拖动滚动块、按住按钮、方向键
//nPos表示拖动后的位置
//pScrollBar表示为指向用户操作的滚动条的指针
void CProgressDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
//GetDlgCtrlID根据传递的指针返回相关控件的ID
if(pScrollBar->GetDlgCtrlID()==IDC_MY_SCROLL2) //检测ID是否为垂直滚动条
{
int nCurrentPos=pScrollBar->GetScrollPos(); //得到滚动条的当前位置
switch(nSBCode) //根据nSBCode参数区分不同的操作类型
{
case SB_THUMBTRACK: //将指示块拖动到特定位置
case SB_THUMBPOSITION: //将指示块拖动到特定位置并松开鼠标
pScrollBar->SetScrollPos(nPos); //重定位滚动条
break;
case SB_LINEUP: //当前位置减1
pScrollBar->SetScrollPos(nCurrentPos-5);
break;
case SB_LINEDOWN: //当前位置加1
pScrollBar->SetScrollPos(nCurrentPos+5);
break;
case SB_PAGEUP: //当前位置减去一页代表的数值
pScrollBar->SetScrollPos(nCurrentPos-10);
break;
case SB_PAGEDOWN: //当前位置加上一页代表的数值
pScrollBar->SetScrollPos(nCurrentPos+10);
break;
}
m_ScrollBar1.SetScrollPos(int(0.5*pScrollBar->GetScrollPos()));
}

CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}

所有的滚动条都在一个消息处理函数里
根据pScrollBar->GetDlgCtrlID()获得是哪个滚动条发出的消息
本回答被网友采纳
1 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
lixin_shirt
2009-03-08 · TA获得超过285个赞
知道小有建树答主
回答量:444
采纳率:0%
帮助的人:387万
展开全部
在Edit控件里就有WM_HSCROLL 消息,你找找看
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
178752468
2009-03-08 · TA获得超过291个赞
知道小有建树答主
回答量:517
采纳率:0%
帮助的人:396万
展开全部
filter for messages available to
中选择
Window类型
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式