BinClock





3.00/5 (9投票s)
2005年6月21日

37482

495
一个带有选项的二进制时钟。
引言
这个项目展示了如何使用减法方法将十进制数转换为二进制数。它具有更改矩形颜色、隐藏或显示十进制时钟以及播放时钟滴答声的选项。
使用代码
为了在定时器中采样系统时钟,我将定时器设置为 250 毫秒(每秒 4 次),并将当前秒数与保存的值进行比较。
void CBinClockDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CTime time = CTime::GetCurrentTime(); int nSecond = time.GetSecond(); if(tTime != nSecond) Display(); tTime = nSecond; CDialog::OnTimer(nIDEvent); }
要将小时、分钟和秒的十进制值转换为二进制,请测试十进制值是否大于或等于二进制位值 32、16、8、4、2、1。如果是,则设置相应的位并将位值从十进制值中减去。
... // Convert decimal to binary if (nHour >= 16) { DisplayHour(5); nHour -= 16; } ... case 5: pDC = m_hour5.GetDC(); m_hour5.GetClientRect(&rect); pDC->FillRect(&rect, &m_brush); ReleaseDC(pDC); break; ...
滴答声使用:PlaySound("SOUNDTICK", hInst, SND_RESOURCE | SND_ASYNC);
,该函数在 Mmsystem.h 中定义,并包含在 Winmm.lib 中。SOUNDTICK
在 rc 文件中定义:“res\\tick.wav”。
历史
- 2005 年 6 月 20 日 - 版本 1.0。