• 大小: 5.92MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-16
  • 语言: C/C++
  • 标签: MFC时钟  

资源简介

MFC画时钟双缓冲防止闪烁 自适应窗口大小

资源截图

代码片段和文件信息


// ChildView.cpp : CChildView 类的实现
//

#include “stdafx.h“
#include “DoClock.h“
#include “ChildView.h“
#include 

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CChildView

CChildView::CChildView()
{
}

CChildView::~CChildView()
{

}


BEGIN_MESSAGE_MAP(CChildView CWnd)
ON_WM_PAINT()
ON_WM_CREATE()
ON_WM_TIMER()
ON_WM_SIZE()
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()



// CChildView 消息处理程序

BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) 
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;

cs.dwExstyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS 
::LoadCursor(NULL IDC_ARROW) reinterpret_cast(COLOR_WINDOW+1) NULL);

return TRUE;
}

void CChildView::OnPaint() 
{
CPaintDC dc(this); // 用于绘制的设备上下文

// TODO: 在此处添加消息处理程序代码

// 不要为绘制消息而调用 CWnd::OnPaint()

m_memDC.FillSolidRect(m_rtClientRGB(255255255));     //填充内存背景色
//1.画圆部分
   
   CPen CirclePen(PS_SOLID 1 RGB(02550));
   CPen * pOldPen   = m_memDC.Selectobject(&CirclePen);
   CRect rtCircle;
   GetClientRect(&rtCircle);
   int nWidth       = min(rtCircle.Width()rtCircle.Height());   //获取最小宽度
   int nRadius      = nWidth/2;  //获取最小半径
   CPoint ptCenter  = rtCircle.CenterPoint();
   rtCircle.left    = ptCenter.x - nRadius;                      //获取左上顶点x
   rtCircle.top     = ptCenter.y - nRadius;                      //获取左上顶点y
   rtCircle.right   = rtCircle.left + nWidth;                    //获取右下角x
   rtCircle.bottom  = rtCircle.top + nWidth;  //获取右下角y
 
   m_memDC.Ellipse(rtCircle);
   // 2.刻度部分
   CPoint ptBig ptSmall;
   double fpi_6     = 3.1415926 * 2 / 12;    
   double fpi_60    = 3.1415926 * 2 / 60;
   for(int i = 0; i < 12; i++)
   {
   ptBig.x   = ptCenter.x + (int)((double)nRadius * cos(fpi_6 * i));
   ptBig.y   = ptCenter.y + (int)((double)nRadius * sin(fpi_6 * i));

   
   ptSmall.x = ptCenter.x + (int)((double)0.8f * nRadius * cos(fpi_6 * i));
   ptSmall.y = ptCenter.y + (int)((double)0.8f * nRadius * sin(fpi_6 * i));

   m_memDC.MoveTo(ptSmall);
   m_memDC.LineTo(ptBig);
   }
   for(int i = 0; i < 60; i++)
   {
   ptBig.x   = ptCenter.x + (int)((double)nRadius * cos(fpi_60 * i));
   ptBig.y   = ptCenter.y + (int)((double)nRadius * sin(fpi_60 * i));


   ptSmall.x = ptCenter.x + (int)((double)0.9f * nRadius * cos(fpi_60 * i));
   ptSmall.y = ptCenter.y + (int)((double)0.9f * nRadius * sin(fpi_60 * i));

   m_memDC.MoveTo(ptSmall);
   m_memDC.LineTo(ptBig);
   }

      //3.钟表指针部分

        CTime Time = CTime::GetCurrentTime();           //获取当前时间
CString strTime;



        
//计算时间走动角度

        double fpi_h = (double)Time.GetHour() + (double)Time.GetMinute()/60.0 +(double)Time.GetSecond()/3600.0;
         fpi_h *= (2*3.1415926 / 12.0);

CPen HourPen(PS_SOLID5RGB(000));
m_memDC.Selectobject(&HourPen);

//绘画时钟指针
CPo

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5985  2015-05-06 19:33  DoClock\DoClock\ChildView.cpp

     文件        677  2015-04-27 08:58  DoClock\DoClock\ChildView.h

     文件       7418  2015-05-06 15:12  DoClock\DoClock\Debug\BuildLog.htm

     文件       1196  2015-04-24 16:59  DoClock\DoClock\Debug\DoClock.exe.embed.manifest

     文件       1120  2015-05-06 15:12  DoClock\DoClock\Debug\DoClock.exe.intermediate.manifest

     文件         67  2015-05-06 15:12  DoClock\DoClock\Debug\mt.dep

     文件       3295  2015-04-24 16:46  DoClock\DoClock\DoClock.cpp

     文件        618  2015-04-24 16:46  DoClock\DoClock\DoClock.h

     文件       9388  2015-04-24 16:46  DoClock\DoClock\DoClock.rc

     文件       5760  2015-04-27 10:26  DoClock\DoClock\DoClock.vcproj

     文件       1415  2015-05-07 19:38  DoClock\DoClock\DoClock.vcproj.SN4580446.Administrator.user

     文件       6178  2015-04-24 16:46  DoClock\DoClock\MainFrm.cpp

     文件       1173  2015-04-24 16:46  DoClock\DoClock\MainFrm.h

     文件       3103  2015-04-24 16:46  DoClock\DoClock\ReadMe.txt

     文件      67777  2007-11-28 16:21  DoClock\DoClock\res\DoClock.ico

     文件        363  2015-04-24 16:46  DoClock\DoClock\res\DoClock.rc2

     文件        598  2003-07-23 17:52  DoClock\DoClock\res\Toolbar.bmp

     文件       2994  2008-02-08 14:46  DoClock\DoClock\res\Toolbar256.bmp

     文件        815  2015-04-24 16:46  DoClock\DoClock\Resource.h

     文件        140  2015-04-24 16:46  DoClock\DoClock\stdafx.cpp

     文件       1854  2015-04-24 16:46  DoClock\DoClock\stdafx.h

     文件       1030  2015-04-24 16:46  DoClock\DoClock\targetver.h

     文件       7976  2007-08-30 17:14  DoClock\DoClock\UserImages.bmp

     文件   23505920  2015-05-07 19:38  DoClock\DoClock.ncb

     文件        887  2015-04-24 16:46  DoClock\DoClock.sln

    ..A..H.     29184  2015-05-07 19:38  DoClock\DoClock.suo

     目录          0  2015-05-18 14:04  DoClock\DoClock\Debug

     目录          0  2015-04-27 08:50  DoClock\DoClock\res

     目录          0  2015-05-18 14:04  DoClock\Debug

     目录          0  2015-05-06 19:33  DoClock\DoClock

............此处省略4个文件信息

评论

共有 条评论