SetTimer回调函数的参数可否传递类指针?

fibbery 2005-12-30 12:00:06
SetTimer函数的定义如下:
UINT SetTimer(
HWND hWnd,
UINT nIDEvent,
UINT uElapse,
TIMERPROC lpTimerFunc );
lpTimerFunc是回调函数指针,TIMERPROC的定义如下:
void CALLBACK TimerProc(
HWND hwnd,
UINT uMsg,
UINT idEvent,
DWORD dwTime );
在TimerProc的参数中,我是否有办法传入一个指针指向一个类?
看上去好像不可以!不知道大家有没有办法?
...全文
335 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fibbery 2005-12-30
  • 打赏
  • 举报
回复
由于我要写一个跨平台的timer类,所以,能够传入class的指针影响整个应用的框架!不可能像2楼那样做,因为我要封装的timer类也要在Unix上运行,即,timer实现方式在两种操作系统不一致(对外接口)导致应用框架的不一致。
fibbery 2005-12-30
  • 打赏
  • 举报
回复
说真的,没看明白!
flyelf 2005-12-30
  • 打赏
  • 举报
回复
http://www.codeproject.com/cpp/SetTimer__non-static.asp
wangk 2005-12-30
  • 打赏
  • 举报
回复
不行,不过可以用变通的办法。
你可以用SetWindowLong给hwnd句柄添加GWL_USERDATA,在TimerProc中用GetWindowLong取出来。
mynamelj 2005-12-30
  • 打赏
  • 举报
回复
指针都是地址值, 可以通过用户自定义发消息去获得
lixiaosan 2005-12-30
  • 打赏
  • 举报
回复
用wxwidget编写程序

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧