資源簡介
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.em
?????文件???????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個文件信息
- 上一篇:用vc++6.0實現的銀行賬戶管理系統
- 下一篇:利用FFT計算頻譜圖
評論
共有 條評論