日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]通過鼠標動作來發(fā)出命令的代碼

在一些比較不錯的瀏覽器中,出現(xiàn)了一些新的功能,通過鼠標動作(也稱鼠標手勢Mouse Gestures)來發(fā)出一些命令,比如opera,myie2.一般是這樣,先按住鼠標右鍵,不要松,然后畫直線或者其他設(shè)定的路徑,就可以完成指定的命令。下面我們就來實現(xiàn)這個功能,具體的核心代碼來自共享軟件聯(lián)盟小樹沖浪瀏覽器中,整理改編了其中的一些地方。

  1.建立一個對話框程序,聲明以下變量和函數(shù)

  BOOL m_bIsCapture;//一個標志變量

  char m_MouseGestures[4], m_SeqMG[4];//用來保存鼠標動作的代碼U(上) D(下)等..

  int m_iMGLen;

  int m_iMouseGS, m_iMouseGE;

  POINT m_StartPoint; //鼠標的坐標點

  BOOL MoveDirection(CPoint& point, char* Direction); //判斷鼠標的簡單動作,四個,上下左右

  void PushMouseGesture(char gesture);//把鼠標動作的代碼保存起來

  2.在對話框中加一個文本框,增加它的CString變量,m_mouse,用來顯示鼠標的動作

  3.重載OnMouseMove的函數(shù),如下

  if( nFlags == MK_RBUTTON) //判斷時候鼠標右鍵按下

  {

  if (m_bIsCapture) //初始的值的TRUE, 只有當?shù)谝稽c的時候發(fā)生里面的動作

  {

  m_bIsCapture=FALSE;

  SetCapture(); //捕獲鼠標

  m_StartPoint = point; //記錄初始坐標點

  }

  char dir;

  if(MoveDirection(point, &dir)) //調(diào)用函數(shù)

  {

  PushMouseGesture(dir);

  m_StartPoint = point;

  }

  }

  CDialog::OnMouseMove(nFlags, point);

  }

  4.判斷鼠標動作的函數(shù) (核心),個人認為是很巧妙而且簡單的算法:

  BOOL Cmouse2Dlg::MoveDirection(CPoint &point, char *Direction)

  {

  int x = point.x - m_StartPoint.x;

  int y = point.y - m_StartPoint.y;

  int dist = x*x+y*y;

  if(dist>64)

  {

  if(x>abs(y) && x>0)

  *Direction = RBUT_RIGHT;

  else if(abs(x)>abs(y) && x<0)

  *Direction = RBUT_LEFT;

  else if(y>abs(x) && y>0)

  *Direction = RBUT_DOWN;

  else if(abs(y)>abs(x) && y<0)

  *Direction = RBUT_UP;

  else

  return FALSE;

  return TRUE;

  }

  else

  return FALSE;

  }

  5.PushMouseGesture函數(shù)

  這個函數(shù)主要是將鼠標的動作保存到m_MouseGestures中,等以后調(diào)用

  if(m_iMouseGE!=0 || m_iMouseGS !=0) //m_iMouseGS和m_iMouseGE初始為0

  {

  int pre = (m_iMouseGE -1 + m_iMGLen)m_iMGLen;

  if(m_MouseGestures[pre] == gesture)

  return;

  }

  m_MouseGestures[m_iMouseGE] = gesture;

  m_iMouseGE = (m_iMouseGE+1)m_iMGLen;

  if(m_iMouseGS == m_iMouseGE)

  m_iMouseGS = (m_iMouseGS + 1)m_iMGLen;

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉