回 帖 发 新 帖 刷新版面

主题:这个怎么做?(关于线程的)本人初学,实在不会……

VC++     win32 application工程下编写:
要求在窗口的正中按格式"时:分:秒"实时显示系统时间,每秒显示一次。要求用工作线程来实现,不允许使用定时器。
(不能用MFC,只能用WIN32 API来写)
本人初学,实在不会,谁帮帮忙,谢谢拉!!!

回复列表 (共5个回复)

沙发

是有一点不会,还是一点都不会?????

板凳

会一点点

但是用到线程就不知道该怎么做了

3 楼

case WM_CREATE:
...
HANDLE hthread;
hthread=CreateThread(NULL,0,ThreadProc,(LPVOID)hwnd,0,NULL);//创建一个线程
CloseHandle( hthread);//关闭线程句柄,释放占用的一些资源
...

//下面是线程函数
DWORD WINAPI ThreadProc(
  LPVOID lpParameter   // thread data
)
{
   
  SYSTEMTIME tm;
  char str[50];
  while(true)
  {
        
        GetLocalTime(&tm);//获取当地时区的时间

        sprintf(str,"%d: %d:%d",tm.wHour,tm.wMinute,tm.wSecond);//格式化到str
        hdc=GetDC((HWND)lpParameter);//获取DC
        SetBkColor(hdc,RGB(255, 255,245));
        TextOut(hdc,5,100,str,strlen(str));//显示到窗口上
        ReleaseDC((HWND)lpParameter,hdc);//释放DC
        Sleep(1000);

  }
  return 0;
}

这个问题建议还是用定时器来触发,定时1秒,那就相当准确了。

4 楼


我来试试
谢谢你哦

5 楼


出来了
真的谢谢你
我做了2天了都没做出来

我来回复

您尚未登录,请登录后再回复。点此登录或注册