分类:
2008-10-13 16:31:42
class SAMPLE
{
public:
...
void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent, DWORD dwTime);
void SetMyTimer();
…
}
typedef void ( CALLBACK SAMPLE::*MemberPtr)(HWND,UINT,UINT_PTR, DWORD);
void CALLBACK SAMPLE::TimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent, DWORD dwTime)
{
return ;
}
Void SAMPLE::SetMyTimer()
{
MemberPtr p = &SAMPLE::TimerProc;
TIMERPROC timeproc = NULL;
void* pVoid;
pVoid = &timeproc;
DWORD* pWord;
pWord = (DWORD*)pVoid;
void* pVoidMember;
pVoidMember = &p;
DWORD* pWordMember;
pWordMember = (DWORD*)pVoidMember;
*pWord = static_cast
::SetTimer(NULL, 0, 1000, timeproc);
}
注意:以上转换过程显得有点烦,主要是表达它的过程^_^!
当然强烈提醒要注意的是:必须在对象析构之前解去这个时钟。