mfc 多媒体定时器timeSetEvent的使用问题

时间:2021-01-06 19:11:48
我本想点击按钮让我的滚动条在100这个位置,我的工程继承CScrollView,sizeTotal.cy = 11635;SetScrollSizes(MM_TEXT, sizeTotal);,所以我的程序是有滚动条的,可是不知道为什么点击按钮程序就崩溃,调试出来是因为我用了ScrollToPosition函数,可是这是系统函数不是我写的,请高手指点,我应该怎么做,我的代码如下:

void CTestSView::OnButton2()//开始
{
// TODO: 在此添加命令处理程序代码
MMRESULT TimeID;
TimeID=timeSetEvent(1000, 1, CallBackFun, (DWORD)this, TIME_PERIODIC);
if (TimeID==NULL)
{
MessageBox("fsdf");
}
}

void CALLBACK CTestSView::CallBackFun(UINT wTimerID, UINT msg,DWORD dwUser, DWORD dwl,DWORD dw2)
{

CTestSView* pThis = (CTestSView*)dwUser;
pThis->ScollEvent();
}
void CTestSView::ScollEvent()
{
CPoint pt;
pt.y=100;
ScrollToPosition(pt);
}

6 个解决方案

#1


先获取位置,然后在设置。。。
pt.x 没有设置那个很大的值。。

#2


我按照你说的设置了:代码如下,可是还是崩溃
void CTestSView::ScollEvent()
{
CPoint pt= GetScrollPosition(); 
pt.x=100;
pt.y=100;
ScrollToPosition(pt);

}

求解?

#3


如果方便的话,可以发工程,这个有码更好解决问题!!

#4


你方便把你的邮箱或者QQ告诉我吗,我的QQ1694569179

#5


你能帮我看看吗,代码我已经发在你的邮箱,shenweiwei@....里面了,谢谢你

#6


楼主问题解决了吗

#1


先获取位置,然后在设置。。。
pt.x 没有设置那个很大的值。。

#2


我按照你说的设置了:代码如下,可是还是崩溃
void CTestSView::ScollEvent()
{
CPoint pt= GetScrollPosition(); 
pt.x=100;
pt.y=100;
ScrollToPosition(pt);

}

求解?

#3


如果方便的话,可以发工程,这个有码更好解决问题!!

#4


你方便把你的邮箱或者QQ告诉我吗,我的QQ1694569179

#5


你能帮我看看吗,代码我已经发在你的邮箱,shenweiwei@....里面了,谢谢你

#6


楼主问题解决了吗