求教:自己写的类如何添加OnTimer响应函数? 我自己写一个类 (没有继承任何类)在代码中可以用SetTimer()设置计时器;但添加不了OnTimer(UINT nIDEvent) 响应函数;我是只菜菜菜鸟,望各位大虾踢教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在事件WM_TIMER上。进入Class Wizard,在Message Maps中,选中你的类,右边的Messages选择WM_TIMER,按增加函数按钮即可。 可以手工添加:在.h文件中声明如下函数:ClassView中在类名上点右键,选Add Member Function,添加如下函数:afx_msg void OnTimer( UINT nIDEvent );在.cpp文件BEGIN_MESSAGE_MAP块中手工加入ON_WM_TIMER( ) 没有继承任何类的话,我说的如上做法也没有办法。在MFC中,要响应消息必须从CCmdTarget继承。 在该类中写一个timer()函数,使用外部的定时器调用timer() 呵呵,楼上的算是个方法 不过想完全的包装的话,还是在类里面创建一个窗口,然后就可以接受Timer了 试试这样:在你的类的cpp文件中添加一个 LRESULT TimerProc()函数,具体参数忘了。该函数相当于OnTimer函数。在你SetTimer时,参数中的回调函数参数不用NULL,而使用自己写的这个函数。具体参数看一下MSDN吧。应该可以的。 楼上,怎么利用回调函数阿?还有在worker threads里怎么进行定时操作阿? 多谢楼上帮过我的各位大虾`~~~ ^-^我尝试过用OnTimerProc(...)回调函数的确可行不过在这类型过程回调函数中只可能使用::开头的平台函数,那如果我在回调函数中调用 使用计时器的类中的函数或变量,应该如果调用?? VOID CALLBACK OnTimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime){ .... //内容 ::KillTimer(NULL,1);}void ClassA::fun() { ::SetTimer(NULL,1,2000,(TIMERPROC)OnTimerProc); }出现有两个问题1、在OnTimerProc的内容中如何调用ClassA的资源?2、KillTimer后计时器还在不停响应,我写错了吗?各位大虾,在此先谢过了 在事件WM_TIMER上。进入Class Wizard,在Message Maps中,选中你的类,右边的Messages选择WM_TIMER,按增加函数按钮即可。 请问哪里可以下到cry engine这款游戏引擎吗? 如何改变按钮的背景,使其变为自己的一张图片? 这个技术问题实在太难了,所以 不是高手别进来!! 求解一个问题,谁能告诉我标准的WIN32 SDK里怎么调用Idle()函数? 一个关于CTabCtrl的问题:如何获得添加到其上的sheet的标签点击事件? 如何确定任给一个路径是普通文件或者是目录? 我想用进度条(ProcessCtrl)显示百分比,怎么用呢 如何实现数据库自动连接? 这个问题值得我重装系统吗? 请问求开方是用什么啊??还有绝对值。 请教,怎么读写任意格式的文件? 一个最简单的wpcap程序,为什么我得不到我要的结果?
在.h文件中声明如下函数:
ClassView中在类名上点右键,选Add Member Function,添加如下函数:
afx_msg void OnTimer( UINT nIDEvent );
在.cpp文件BEGIN_MESSAGE_MAP块中手工加入ON_WM_TIMER( )
在你的类的cpp文件中添加一个 LRESULT TimerProc()函数,具体参数忘了。该函数相当于OnTimer函数。
在你SetTimer时,参数中的回调函数参数不用NULL,而使用自己写的这个函数。具体参数看一下MSDN吧。
应该可以的。
我尝试过用OnTimerProc(...)回调函数的确可行不过在这类型过程回调函数中只可能使用::开头的平台函数,
那如果我在回调函数中调用 使用计时器的类中的函数或变量,
应该如果调用??
{
.... //内容
::KillTimer(NULL,1);
}
void ClassA::fun() {
::SetTimer(NULL,1,2000,(TIMERPROC)OnTimerProc);
}出现有两个问题
1、在OnTimerProc的内容中如何调用ClassA的资源?
2、KillTimer后计时器还在不停响应,我写错了吗?各位大虾,在此先谢过了