Symbian觸控螢幕雙擊事件處理

來源:互聯網
上載者:User
開始的時候我在sdk中看到了 EButtonRepeat,以為是symbian提供了雙擊事件的方法,其實不然,我現在覺得這個應該不是用來處理雙擊的,但是我也不知道是用來幹什麼的,如果有路過的大神看見了,希望在留言中指點一下,在這裡不甚感激。

 

不廢話了,做處理雙擊事件的思路是:當第一個EButton1Down事件 發生時,我用hometime記錄下當時的TDatatime,然後如果下次擷取hometime的時間小於我但是設定的一個雙擊事件的間隔,那麼我就判定為雙擊事件。當然也可以加上地區的判斷。

 

 

代碼如下:

if(aPointerEvent.iType == TPointerEvent::EButton1Down)
  {
  iButton1Down = aPointerEvent.iPosition;
  if(iBackRect.Contains(iButton1Down))
   {
   TTime timeNow;
   timeNow.HomeTime();

   TInt nInterArrivalTime = timeNow.Int64() - iButton1DownTimeNow.Int64();
   if(nInterArrivalTime < 500000)
    {
    iView->HandleCommandL((TInt)EAknSoftkeyBack);
    }
   iButton1DownTimeNow = timeNow;
   }
  
  }

 

其中iBackRect 是指點擊的有效地區,如果兩次時間都在這個地區類 而且兩次時間間隔小於設定的時間,及判斷為雙擊。

 

成員變數:

TPoint iButton1Down ;

TDataTime iButton1DownTimeNow;

 

這裡設定的兩次單擊的時間間隔如上nInterArrivalTime < 500000,為0.5秒

 

這裡應該特別注意的是iButton1DownTimeNow這個的初始化不要習慣的初始化為0,不然會出現很抽象的效果,我想大神們都應該清楚,我就不說了,初始化方式可也是iButton1DownTimeNow.HomeTime();

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.