关于MFC 我做了个五子棋程序,想插个简单的时钟程序
我做了个五子棋程序,想在上面加个简单的时钟,能不能那位高手帮我加下,这是我QQ250431327我给你发过去。。。。。...
我做了个五子棋程序,想在上面加个简单的时钟,能不能那位高手帮我加下,这是我QQ250431327 我给你发过去。。。。。
展开
展开全部
我不要你的代码。
但我可以帮你解决。
你可以用CWnd类的两个定时器函数
分别是UINT SetTimer(UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT*lpfnTimer) (HWND, UINT, UINT, DWORD) );
还有一个
BOOL KillTimer( int nIDEvent );
具体用法:
SetTimer()
CWnd::SetTimer
UINT SetTimer(UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT*lpfnTimer) (HWND, UINT, UINT, DWORD) );
返回值:
如果函数成功,则返回新定时器的标识符。应用程序可以将这个值传递给KillTimer成员函数以销毁定时器。如果成功,则返回非零值;否则返回0。
参数: nIDEvent 指定了不为零的定时器标识符。
nElapse 指定了定时值;以毫秒为单位。
lpfnTimer 指定了应用程序提供的TimerProc回调函数的地址,该函数被用于处理WM_TIMER消息。如果这个参数为NULL,则WM_TIMER消息被放入应用程序的消息队列并由CWnd对象来处理。
说明:
这个函数设置一个系统定时器。指定了一个定时值,每当发生超时,则系统就向设置定时器的应用程序的消息队列发送一个WM_TIMER消息,或者将消息传递给应用程序定义的TimerProc回调函数。
lpfnTimer回调函数不需要被命名为TimerProc,但是它必须按照如下方式定义:
void CALLBACK EXPORT TimerProc(
HWND hWnd, // 调用SetTimer的CWnd的句柄
UINT nMsg, // WM_TIMER
UINT nIDEvent // 定时器标识
DWORD dwTime // 系统时间
);
定时器是有限的全局资源;因此对于应用程序来说,检查SetTimer返回的值以确定定时器是否可用是很重要的。
KillTimer()
CWnd::KillTimer
BOOL KillTimer( int nIDEvent );
返回值:
指定了函数的结果。如果事件已经被销毁,则返回值为非零值。如果KillTimer成员函数不能找到指定的定时器事件,则返回0。
参数: nIDEvent 传递给SetTimer的定时器事件值。
说明:
销毁以前调用SetTimer创建的用nIDEvent标识的定时器事件。任何与此定时器有关的未处理的WM_TIMER消息都从消息队列中清除。
你既然会用MFC写五子棋程序。
那么你也一定会添加消息映射吧
有了上面的知识,你应该知道在什么窗口中加WM_TIMER的消息映射了吧
哈哈,祝你写的愉快
但我可以帮你解决。
你可以用CWnd类的两个定时器函数
分别是UINT SetTimer(UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT*lpfnTimer) (HWND, UINT, UINT, DWORD) );
还有一个
BOOL KillTimer( int nIDEvent );
具体用法:
SetTimer()
CWnd::SetTimer
UINT SetTimer(UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT*lpfnTimer) (HWND, UINT, UINT, DWORD) );
返回值:
如果函数成功,则返回新定时器的标识符。应用程序可以将这个值传递给KillTimer成员函数以销毁定时器。如果成功,则返回非零值;否则返回0。
参数: nIDEvent 指定了不为零的定时器标识符。
nElapse 指定了定时值;以毫秒为单位。
lpfnTimer 指定了应用程序提供的TimerProc回调函数的地址,该函数被用于处理WM_TIMER消息。如果这个参数为NULL,则WM_TIMER消息被放入应用程序的消息队列并由CWnd对象来处理。
说明:
这个函数设置一个系统定时器。指定了一个定时值,每当发生超时,则系统就向设置定时器的应用程序的消息队列发送一个WM_TIMER消息,或者将消息传递给应用程序定义的TimerProc回调函数。
lpfnTimer回调函数不需要被命名为TimerProc,但是它必须按照如下方式定义:
void CALLBACK EXPORT TimerProc(
HWND hWnd, // 调用SetTimer的CWnd的句柄
UINT nMsg, // WM_TIMER
UINT nIDEvent // 定时器标识
DWORD dwTime // 系统时间
);
定时器是有限的全局资源;因此对于应用程序来说,检查SetTimer返回的值以确定定时器是否可用是很重要的。
KillTimer()
CWnd::KillTimer
BOOL KillTimer( int nIDEvent );
返回值:
指定了函数的结果。如果事件已经被销毁,则返回值为非零值。如果KillTimer成员函数不能找到指定的定时器事件,则返回0。
参数: nIDEvent 传递给SetTimer的定时器事件值。
说明:
销毁以前调用SetTimer创建的用nIDEvent标识的定时器事件。任何与此定时器有关的未处理的WM_TIMER消息都从消息队列中清除。
你既然会用MFC写五子棋程序。
那么你也一定会添加消息映射吧
有了上面的知识,你应该知道在什么窗口中加WM_TIMER的消息映射了吧
哈哈,祝你写的愉快
2009-09-13
展开全部
如果只是想用文字图形显示,配合定时器可以在窗口类状态框中(cstatebar 或者statebarctl)增加一个时间面板就可以自动显示时间了,最简单。
VS6.0以上都支持。
具体参考
http://hi.baidu.com/ewook/blog/item/c95a53fb2a29ed116c22eb76.html
VS6.0以上都支持。
具体参考
http://hi.baidu.com/ewook/blog/item/c95a53fb2a29ed116c22eb76.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询