请问CSliderCtrl的滚动事件是怎么触发的啊 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参见下面的代码,在对话框的OnHScroll函数中处理:void CMyPlayerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default if(pScrollBar->GetSafeHwnd() == m_SliderGraph.GetSafeHwnd()) { if(m_FilterGraph) { double duration=1.; m_FilterGraph->GetDuration(&duration); double pos=duration *m_SliderGraph.GetPos()/1000.; m_FilterGraph->SetCurrentPosition(pos); } } else if(pScrollBar->GetSafeHwnd() == m_AudioVol.GetSafeHwnd() && m_bHaveSound) { int pos = m_AudioVol.GetPos(); m_FilterGraph->SetAudioVolume(pos-10000); }} 对,像 vcleaner(我没做大哥已经很久了.......) 说的,要响应对话框的WM_HSCROLL消息,然后判断pScrollBar,为NULL的话是对话框的滚动条。看看MSDN oid CTest6Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { CWnd *pSlider1, *pSlider2; pSlider1 = GetDlgItem(IDC_SLIDER1); pSlider2 = GetDlgItem(IDC_SLIDER2); switch(nSBCode) { case SB_THUMBTRACK: //鼠标拖动 if (pScrollBar == pSlider1) { // } else if (pScrollBar == pSlider2) { // ………….; } break; case SB_LINERIGHT: //单击滚动条向右的箭头 //...... break; case SB_LINELEFT: //单击滚动条向左的箭头 //...... break; case SB_PAGERIGHT://单击滚动条右面的箭头与滚动块之间的区域(pagedn) //...... break; case SB_PAGELEFT://单击滚动条左面的箭头与滚动块之间的区域(pageup) //...... break; } CDialog::OnHScroll(nSBCode, nPos, pScrollBar);} void CPlayPowerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 为什么我的每次触发的事件中,nPos都为0??? 用socket 得到网页.recv 怎么没反应.估计是http头,不对.谁给看下. CAsyncSocket中connect()超时设置,散分! 关于事件模型 COM的问题,大家指点一下... 不要因为我菜 而不捡我散的分! 关于内存泄露 如何为弹出的消息框中的按钮添加处理 c#中的进入内存时怎么编码 截取屏幕到缓冲区 急死人!!!help me!!! win32 DLL 问题? 哪位能提供全国电子地图(用于GIS开发)下载的网址?感激不尽
void CMyPlayerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
if(pScrollBar->GetSafeHwnd() == m_SliderGraph.GetSafeHwnd())
{
if(m_FilterGraph)
{
double duration=1.;
m_FilterGraph->GetDuration(&duration);
double pos=duration *m_SliderGraph.GetPos()/1000.;
m_FilterGraph->SetCurrentPosition(pos);
}
}
else if(pScrollBar->GetSafeHwnd() == m_AudioVol.GetSafeHwnd() && m_bHaveSound)
{
int pos = m_AudioVol.GetPos();
m_FilterGraph->SetAudioVolume(pos-10000);
}
}
{
CWnd *pSlider1, *pSlider2;
pSlider1 = GetDlgItem(IDC_SLIDER1);
pSlider2 = GetDlgItem(IDC_SLIDER2);
switch(nSBCode)
{
case SB_THUMBTRACK: //鼠标拖动
if (pScrollBar == pSlider1)
{
//
}
else
if (pScrollBar == pSlider2)
{
// ………….;
}
break;
case SB_LINERIGHT: //单击滚动条向右的箭头
//......
break;
case SB_LINELEFT: //单击滚动条向左的箭头
//......
break;
case SB_PAGERIGHT://单击滚动条右面的箭头与滚动块之间的区域(pagedn)
//......
break;
case SB_PAGELEFT://单击滚动条左面的箭头与滚动块之间的区域(pageup)
//......
break;
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
为什么我的每次触发的事件中,nPos都为0???