C ++ / Win32如何创建Egg-Timer

时间:2014-03-06 16:04:40

标签: c++ winapi timer

嘿,我一直在考虑制作某种计时器,就像鸡蛋计时器一样。我认为这是一个更好习惯win32的好方法。嗯,到目前为止,这个想法是一个普通的窗口,小而简单,带有“开始”和“退出”按钮。如果我点击“开始”按钮,它将启动一个计时器,可能会在5分钟左右倒计时,当它达到0时,它会停止并发出声音。现在,我想知道我是如何做到这样窗口实际上是重要的,如果可能的话,创建一个进度条。如果有人可以给我一些帮助,只需要一些小的东西,这样我就可以使用的东西真的很好:)我在Google上看了一下,定时器看起来有点奇怪: 此外,是否可以为倒计时结束声音添加自定义声音,如.wav或.mp3?

提前非常感谢你:3

2 个答案:

答案 0 :(得分:6)

使用SetTimer function启动定期计时器 - 每次启动时,您都会收到WM_TIMER条消息。在该消息的处理程序中,递减计数器并使用InvalidateRect使窗口重新绘制。

答案 1 :(得分:0)

在这里,我知道如何制作计时器,这很容易:

#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;

int main()
{
    system("Color A");
    long long int time;
    cout<<"Enter the amount of time."<<endl;
    cin>>time;//how many seconds you want
    cout<<time<<'\r'<<flush;
    while(time>10)//repeat this until the time in under 10 seconds
    {
        Sleep(800);
        time--;
        Beep(500,200);
        cout<<time<<'\r'<<flush;
    }
    while(time>3)//repeat this until the time in under 3 seconds
    {
        Sleep(500);
        Beep(800,166);
        time--;
        Beep(800,166);
        cout<<time<<'\r'<<flush;
        Beep(800,166);
    }
    while(time>0)//repeat this until the time is up
    {
        Sleep(100);
        Beep(1000,150);
        Beep(1000,150);
        time--;
        Beep(1000,150);
        Beep(1000,150);
        cout<<time<<'\r'<<flush;
        Beep(1000,150);
        Beep(1000,150);
    }
    cout<<"times up!"<<endl;
    return 0;
}

系统("Color *letter or number*");更改文字的颜色,即提示音(时间);播放声音。

希望它有效!