我有这种想法建立一个倒计时定时器,如1点02,在屏幕上(全尺寸)上的。 一件事是,我真的没有就如何启动一个线索。

我知道基本的C / C ++,Win32 API的和位GDI的。

人对如何启动这个任何指针?我的节目会像使计算机成为一个大秒表(但具有附加功能)

不要求代码,只是关于如何启动这个一些想法/引物。 这样做主要是网页内容已在WIN编程我有点生疏了。

任何想法欢迎

由于

请注意:我觉得我有/ C ++,因为速度的C至做到这一点。我的秒表程序将在一个非常缓慢的PC上运行,像一个P3 800MHz的,所以速度是非常重要的。

有帮助吗?

解决方案

如果您有与Windows消息处理和Win32 API的一些经验,这应该让你开始。

LRESULT WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 
{ 
  HDC hdc; 
  PAINTSTRUCT ps; 
  RECT r; 
  char szBuffer[200]; 
  static int count = 120; 
  int seconds = 0;
  int minutes = 0;
  int hours  = 0;

  switch (message) { 
  case WM_CREATE: 
    // create a 1 second timer 
    SetTimer (hwnd, ID_TIMER, 1000, NULL); 
    return 0;      

  case WM_PAINT:
    if(count > 0)
    {
        hdc = BeginPaint (hwnd, &ps); 
        GetClientRect (hwnd, &r);
        hours = count / 3600;
        minutes = (count / 60) % 60;
        seconds = count % 60;
        wsprintf (szBuffer, "Hours: %d Minutes: %d Seconds: %d", hours, minutes, seconds); 
        DrawText (hdc, szBuffer, -1, &r, DT_LEFT); 
        EndPaint (hwnd, &ps); 
    }
    else
    {
        SendMessage (hwnd, WM_CLOSE, 0, 0L)
    }
    return 0; 

  case WM_TIMER: 
    count--;       
    InvalidateRect (hwnd, NULL, TRUE);
    return 0;        

  case WM_DESTROY: 
    KillTimer (hwnd, ID_TIMER); 
    PostQuitMessage (0); 
    return 0; 
  }  /* end switch */ 
 } 

下面是关于使用定时器良好的链接:

使用定时器

其他提示

创建一个定时器,让应用程序通过发送绘制消息本身回应计时器事件。要确保当应用程序退出删除定时器。

一个时钟以每秒一个screenchange运行; 800MHz的CPU每秒处理约800万条指令。这比你需要约7.99亿多,所以效率不是问题。它仍然在Jvascript在浏览器中运行。并不意味着C或C ++是不合适的,虽然。

要Win32程序的最简单的方法是通过一个支撑库。的wxWidgets和Qt都是不错的选择,而且都是免费的。他们节省您的螺母和螺栓侧不少。基本上,在两个你创建包含文本框对象以及计时器对象窗口对象,并且你只是接线计时器滴答到文本更新。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top