大家帮忙设计一个倒计时器
在学VC过程中,今天想设计一个倒计时器,在VB中是有一个控件的,不知道VC中有没有这样的一个控件可以设定时间,比如说我想过5秒钟之后才把一个值付给一个变量,用什么方法可以让我的程序过5秒才付值呢?.请大家指点. 问题点数:80、回复次数:9Top
1 楼arrowcy(长弓手)回复于 2005-04-01 15:12:52 得分 0
这个……除了用不断循环判断时间的办法外,还有很多好办法,不过我都记不得了:(Top
2 楼pagechen(天外飞来的仙)回复于 2005-04-01 15:18:21 得分 0
timer控件Top
3 楼longlijun(风之力)回复于 2005-04-01 15:25:04 得分 20
UINT SetTimer(
HWND hWnd, // handle of window for timer messages
UINT nIDEvent, // timer identifier
UINT uElapse, // time-out value
TIMERPROC lpTimerFunc // address of timer procedure
);
可以使用这个函数, 不过, 时间的精度不太高。Top
4 楼longlijun(风之力)回复于 2005-04-01 15:31:39 得分 10
::SetTimer(m_hwnd, 1, 5000, NULL) 在On_Timer中做你想做的,这种方式,消息可能被阻塞。
也可以写可以回调函数直接处理, ::SetTimer(m_hwnd, 1, 5000, Proc), 不会被阻塞。
Top
5 楼cui_ping2005(小萍)回复于 2005-04-01 16:40:06 得分 0
风之力,你还在吗?你上面的那语句是不是要在timer控件实现的,但是我在control里面没有找到这个控件啊.
顺便问一句题外话,今天我买了一本<<visual c++编程实例与技巧集粹>>里面有很多方法都是用到ClassWzard处理的.比如"使用ClassWizard处理WM_CTLCOLOR消息.想问一下这个ClassWizard在那里,怎样用啊?你是不是给我这个问题搞得发笑:),没办法,前几天跟我们宿舍的舍友打赌,这几天要用VC做一个软件给她看一下的所以来不级认真看书.请你和大家帮个忙Top
6 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-01 16:48:01 得分 10
可以直接用SetTimer设置定时器Top
7 楼longlijun(风之力)回复于 2005-04-01 16:54:39 得分 30
那个函数不需要任何控件, 只要是派生自CWnd的窗体, 都可以直接使用该函数。
::SetTimer(m_hwnd, 1, 5000, NULL) 这是WIN32API函数, 原则上,只是窗体,就可以使用,
m_hwnd为该窗体句柄。
CWnd本身也有个函数,UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );
你可以使用API函数,也可使用其成员函数,使用API函数需要加“::“号, 成员函数不用加,
SetTimer(1, 5000, NULL) 就可以了, 然后,给窗体映射WM_TIMER消息, 在On_Timer()中做你的事情, 如果不需要计时器了,可以KillTimer(1);就可以。Top
8 楼longlijun(风之力)回复于 2005-04-01 17:00:25 得分 10
ClassWzard :)
菜单--->查看----->建立类向导, 弹出来的就是它!Top
9 楼cui_ping2006(小萍)回复于 2005-04-01 17:40:58 得分 0
谢谢大家对我的支持与帮助特别是风之力和勇敢的心.
勇敢的心这个名字是不是来自一部电影呢?我看过哦.
我现在就是试一下,不过先吃饭先.
没有"风"我该怎么办.再说声谢谢.Top




