⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diaclockctrl.cpp__.htm

📁 symbian clock 源代码..........
💻 HTM
字号:
<html><head><title>Exercise_GUIClock.rar DiaClockCtrl.cpp</title>
<LINK href="/inc/read_style.css" type=text/css rel=stylesheet></head>
<body>
<p><a href=http://www.pudn.com>www.pudn.com</a> &gt; <a href="http://www.pudn.com/downloads91/sourcecode/comm/symbian/detail348522.html">Exercise_GUIClock.rar</a> &gt DiaClockCtrl.cpp</p><!-- saved from http://www.pudn.com -->
<script src="/inc/gg_read1.js"></script><BR>
<pre name="code" class="cpp">
// DigClockCtrl.cpp: implementation of the CDigClockCtrl class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "DiaClockCtrl.h" 
#include "math.h" 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
CDiaClockCtrl::CDiaClockCtrl() 
{ 
 
} 
 
CDiaClockCtrl::~CDiaClockCtrl() 
{ 
} 
 
void CDiaClockCtrl::ConstructL() 
{ 
} 
 
 
 
void CDiaClockCtrl::Draw(const TRect& /*aRect*/) const 
{ 
	// Window graphics context 
	CWindowGc& gc = SystemGc(); 
	// Area in which we shall draw 
	TRect      drawRect = Rect(); 
	// Font used for drawing text 
	// Start with a clear screen 
	gc.Clear(drawRect); 
//	gc.DrawRect(drawRect); 
 
	// Draw an outline rectangle (the default pen 
	// and brush styles ensure this) slightly 
	// smaller than the drawing area. 
	 
	this->DrawClock(gc,drawRect,iTime.Hour(),iTime.Minute(),iTime.Second()); 
} 
 
void CDiaClockCtrl::DrawClock(CWindowGc& aGc,const TRect &  aRect,TInt aHour/*<=12*/,TInt aMin,TInt aSec) const 
{ 
	if(iSelected) 
		aGc.SetPenColor(TRgb(255,0,0)); 
	else 
		aGc.SetPenColor(TRgb(0,0,0)); 
 
	 
	//画表盘 
	aGc.DrawArc(aRect,TPoint(0,0),TPoint(0,0)); 
	 
	TPoint	pntFrom, pntTo; 
	TReal	Pi = 3.1415926; 
	TReal	angleInterval = Pi*2/12; 
	 
	TInt	dialRadio = aRect.Width()/2;  //表盘半径 
	TInt	scaleLen = 5; //刻度长度 
 
	aGc.SetPenSize(TSize(1,1)); 
	for(TInt i = 0; i < 12; i++){ 
		pntFrom.iX = aRect.Center().iX + (TInt)((dialRadio - scaleLen)*cos(i*angleInterval)); 
		pntFrom.iY = aRect.Center().iY + (TInt)((dialRadio - scaleLen)*sin(i*angleInterval)); 
		pntTo.iX = aRect.Center().iX + (TInt)((dialRadio )*cos(i*angleInterval)); 
		pntTo.iY = aRect.Center().iY + (TInt)((dialRadio )*sin(i*angleInterval)); 
		 
		aGc.DrawLine(pntFrom,pntTo); 
	} 
	 
	//画指针 
	TInt hourPointerWid = 4; 
	TInt hourPointerLen = dialRadio*4/7; 
	TInt minPointerWid = 2; 
	TInt minPointerLen = dialRadio*2/3; 
	TInt secPointerWid = 1; 
	TInt secPointerLen = dialRadio*4/5; 
	TInt pointerMargin = 3; 
	 
	//画时针 
	TReal pointerAngle = Pi*2*aHour/12 + (Pi*2/12)*aMin/60 - Pi/2; 
	pntFrom.iX = aRect.Center().iX + pointerMargin*cos(pointerAngle+Pi); 
	pntFrom.iY = aRect.Center().iY + pointerMargin*sin(pointerAngle+Pi); 
	pntTo.iX = aRect.Center().iX + hourPointerLen*cos(pointerAngle); 
	pntTo.iY = aRect.Center().iY + hourPointerLen*sin(pointerAngle); 
	aGc.SetPenSize(TSize(hourPointerWid,hourPointerWid)); 
	aGc.DrawLine(pntFrom,pntTo); 
	 
	 
	//画分针 
	pointerAngle = Pi*2*aMin/60 - Pi/2; 
	pntFrom.iX = aRect.Center().iX + pointerMargin*cos(pointerAngle+Pi); 
	pntFrom.iY = aRect.Center().iY + pointerMargin*sin(pointerAngle+Pi); 
	pntTo.iX = aRect.Center().iX + minPointerLen*cos(pointerAngle); 
	pntTo.iY = aRect.Center().iY + minPointerLen*sin(pointerAngle); 
	aGc.SetPenSize(TSize(minPointerWid,minPointerWid)); 
	aGc.DrawLine(pntFrom,pntTo); 
	 
	//画秒针 
	pointerAngle = Pi*2*aSec/60 - Pi/2; 
	pntFrom.iX = aRect.Center().iX + pointerMargin*cos(pointerAngle+Pi); 
	pntFrom.iY = aRect.Center().iY + pointerMargin*sin(pointerAngle+Pi); 
	pntTo.iX = aRect.Center().iX + secPointerLen*cos(pointerAngle); 
	pntTo.iY = aRect.Center().iY + secPointerLen*sin(pointerAngle); 
	aGc.SetPenSize(TSize(secPointerWid,secPointerWid)); 
	aGc.DrawLine(pntFrom,pntTo); 
} 
</pre>
<script src="/inc/gg_read2.js"></script><BR>
<script src="http://s117.cnzz.com/stat.php?id=1236358&web_id=1236358&show=pic" language="JavaScript" charset="gb2312"></script>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -