急!!活动对象画表针出了问题!

原创 2017年01月03日 02:02:19
不知道什么问题。表述如下:

代码:


void CMultiViewTestAppView::DrawClock(CWindowGc& aGc, const TRect& aRect, TInt aHour, TInt aMinute, TInt aSec) const
        {
        aGc.DrawArc(aRect,TPoint(0,0),TPoint(0,0));
        const TReal Pi = 3.1415926;
        TReal angleDegree = Pi*2/12;
        
        TInt arcRadio = aRect.Width()/2;  //表盘半径
        TInt scaleLen = 5;                //刻度长度
        
        TPoint pointFrom,pointTo;
        aGc.SetPenSize(TSize(1,1));
        //画刻度
        for(int i=0; i<12; i++)
                {
                
                pointFrom.iX = aRect.Center().iX + (TInt)((arcRadio-scaleLen)*cos(i*angleDegree));
                pointFrom.iY = aRect.Center().iY + (TInt)((arcRadio-scaleLen)*sin(i*angleDegree));
                pointTo.iX = aRect.Center().iX + (TInt)(arcRadio*cos(i*angleDegree));
                pointTo.iY = aRect.Center().iY + (TInt)(arcRadio*sin(i*angleDegree));
                
                aGc.DrawLine(pointFrom,pointTo);
                }
        //画表针
        TInt hourPenSize = 4;
        TInt minutePenSize = 2;
        TInt secondPenSize = 1;
        
        TInt hourLengh = arcRadio*4/7;
        TInt minuteLengh = arcRadio*2/3;
        TInt secondLengh = arcRadio*4/5;

        TReal penDegree = 0;   //偏转角度
        
        //画时针
        penDegree = Pi*2*aHour/12 + (Pi*2/12)*aMinute/60-Pi/2;
        pointFrom.iX = aRect.Center().iX + (TInt)(3*cos(penDegree+Pi));
        pointFrom.iY = aRect.Center().iY + (TInt)(3*sin(penDegree+Pi));
        pointTo.iX = aRect.Center().iX + (TInt)(hourLengh*cos(penDegree));
        pointTo.iY = aRect.Center().iY + (TInt)(hourLengh*sin(penDegree));
        
        aGc.SetPenSize(TSize(hourPenSize,hourPenSize));
        aGc.DrawLine(pointFrom,pointTo);
        
        //画分针
        penDegree =(Pi*2/12)*aMinute/60-Pi/2;
        pointFrom.iX = aRect.Center().iX + (TInt)(3*cos(penDegree+Pi));
        pointFrom.iY = aRect.Center().iY + (TInt)(3*sin(penDegree+Pi));
        pointTo.iX = aRect.Center().iX + (TInt)(minuteLengh*cos(penDegree));
        pointTo.iY = aRect.Center().iY + (TInt)(minuteLengh*sin(penDegree));

        aGc.SetPenSize(TSize(minutePenSize,minutePenSize));
        aGc.DrawLine(pointFrom,pointTo);
        
        //画秒针
        penDegree =Pi*2*aSec/60-Pi/2;
        pointFrom.iX = aRect.Center().iX + (TInt)(3*cos(penDegree+Pi));
      pointFrom.iY = aRect.Center().iY + (TInt)(3*sin(penDegree+Pi));      
        pointTo.iX = aRect.Center().iX + (TInt)(secondLengh*cos(penDegree));
        pointTo.iY = aRect.Center().iY + (TInt)(secondLengh*sin(penDegree));

        aGc.SetPenSize(TSize(secondPenSize,secondPenSize));
        aGc.DrawLine(pointFrom,pointTo);
        }
 


问题就出在了加粗的哪一行。。
如果我改成:pointFrom.iY = 50.程序正常运行。秒针正常转动,只是表针不再表盘中央了。。
改成:pointFrom.iY = 100就报同样的错误!!

错误报告:

   72.660        AKNSKINS: (Error) "CAknsAppSkinInstance::GetLayoutBitmap Srv update failed -1"

相关文章推荐

Symbian OS 之活动对象

  • 2007年06月18日 09:48
  • 51KB
  • 下载

活动对象3 张锦锋Symbian讲座

  • 2009年09月01日 22:08
  • 7.81MB
  • 下载

Javascript 作用域链 活动对象 执行环境 与 this 的纠结 总结~

一篇很不错的关于Javascript中 让人蛋疼的 this问题的分析文章。因为我引的地方也不是原创,原创现在已石沉大海,所以就不引来源了。在开始引用他的之前,我先小总结一句我感触最深的:想知道thi...
  • misol
  • misol
  • 2011年05月17日 15:06
  • 4483

带注释symbian活动对象例子

  • 2008年09月25日 21:06
  • 6KB
  • 下载

Symbian编程总结-了解篇-活动对象正解(4)-异步函数的同步调用

转自:http://www.cnblogs.com/felixYeou/archive/2008/11/25/1340893.html   关键内容在第2和第3部分,这部分是如何进行异步转同步,了解...
  • omegayy
  • omegayy
  • 2012年02月08日 11:47
  • 496

symbian 活动对象 例子

  • 2010年06月04日 15:08
  • 6KB
  • 下载

基于ACE的活动对象实例

  • 2014年05月30日 14:53
  • 467KB
  • 下载

活动对象框架探秘(上篇)

 Coastline版权所有,转载请注明出处。 做Symbian的人都会用AO来处理异步,但是对于CActiveScheduler、CActive、CActiveSchedulerWait等一整套机制...
  • dymx101
  • dymx101
  • 2011年01月08日 14:24
  • 357

symbian活动对象详解

  • 2010年03月31日 09:24
  • 421KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:急!!活动对象画表针出了问题!
举报原因:
原因补充:

(最多只允许输入30个字)