关于VC++ 6.0中 无法为一个滚动条添加消息映射的菜鸟问题 80
本人利用MFC写了一个对话框里面有个水平滚动条想要对WM_HSCROLL进行消息映射但是发现很奇怪的问题在VC++6.0的类向导里发现对应于水平滚动条ID的消息居然没有~...
本人利用MFC写了一个对话框 里面有个水平滚动条 想要对WM_HSCROLL 进行消息映射 但是发现很奇怪的问题
在VC++ 6.0的类向导里 发现对应于水平滚动条ID的消息居然没有~!我根本无法消息映射 高手救命啊~! 展开
在VC++ 6.0的类向导里 发现对应于水平滚动条ID的消息居然没有~!我根本无法消息映射 高手救命啊~! 展开
4个回答
展开全部
//垂直滚动条发出的通知消息是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()获得是哪个滚动条发出的消息
//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()获得是哪个滚动条发出的消息
本回答被网友采纳
展开全部
在Edit控件里就有WM_HSCROLL 消息,你找找看
展开全部
filter for messages available to
中选择
Window类型
中选择
Window类型
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询