就是settimer()函数怎么用,就是第三个参数用函数指针,我不知道在vc下怎么个用法,谁可以举个例子看看
解决方案 »
- 关于使用HTTP隧道技术通过只开放80端口的防火墙技术问题
- (菜鸟)定义对话框为成员变量 编译出错
- 请问如何在程序中实现自动弹出qq的一个会话框
- 实时和播放音频时有规律的嗒嗒的声音?有分。
- 到新公司上班第一天!纪念,散分!
- 【求助】如何改变任意对话框的背景色?
- 由dialog1调用dialog2,dialog2最小化时怎样才能不影响dialog1?
- 问一下,我怎么在位图上画一个半透明的矩形,有什么api可以实现吗?
- BOOL CALLBACK ClassName::Proc 与 BOOL CALLBACK Proc 有何区别
- 0---1006之间的数字
- 请教一个困惑已久的问题,关于USB接口的通讯
- 急救::关于字符串的一个小问题!
如果是一个CALLBACK的函数 那么执行该函数
最简单的做法是, 映射 WM_TIMER消息即可. 此时, 第三个参数设置为NULL就可以了.如果使用第三个参数, 则自己写一个原型为, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) 的函数.
然后将这个函数地址作为第三个参数.
SetTimer(IDC_TIMER,1000,NULL),IDC_TIMER是计时器资源的ID,1000表示每秒触发一次。
如果要使用第三个参数,如楼上所说,自己编写CALLBACK函数,把函数地址作为第三个参数即可。
void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) 的函数.这中函数怎么定义
error C2664: 'SetTimer' : cannot convert parameter 3 from 'void (void)' to 'void (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,unsigned long)'
None of the functions with this name in scope match the target type
重载WM_TIMER
直接在OnTimer()中写你需要的东东回调函数的定义应该定义成这样
void CALLBACK TimerProc(
HWND hWnd, // handle of CWnd that called SetTimer
UINT nMsg, // WM_TIMER
UINT nIDEvent, // timer identification
DWORD dwTime // system time
)